Update candle plot with additional candle

Is it somehow possible to update an existing candle-plot without redrawing the whole chart?
Meaning I want to add a candle when new data has arrived. Everytime redrawing the whole chart is rather slow.

 采纳的回答

If you save the handle to the plot, you can access its Data property
h = candle(ax, someData)
h.Data(end+1) = [1 2 3 4];

6 个评论

This is what I tried but it doesn't work this way. The candle function doesn't return a handle with a data property but just an array of class matlab.graphics.primitive.Data. These object have a XData and a YData property but this is no OHLC but the coordinates of the candle body if I understand what I see.
I see no straight forward way of adding to this data.
I have taken a look at candle
load SimulatedStock.mat;
candle(TMW(end-20:end,:),'b');
title('Candlestick chart for TMW')
ax = gca;
ax.Children
If you take a look at children of axes, there are patches and one line object. Patches form these filled or empty rectangles and lines are the vertical line for each patch object. So if you want to add a new data, you'd have to add a patch object and modify the line object.
Yes, I understood that. I just hoped there was a more convenient way
Actually, my bad, solution is as simple as this.
load SimulatedStock.mat;
candle(TMW(end-20:end-2,:),'b');
title('Candlestick chart for TMW')
hold on
candle(TMW(end-1:end,:),'b');
Ah I see, the candle is appended automatically at the end. Probably works through the included datetime. Nice!
Thank you very much!
You're welcome. You can accept my answer on the blue button, thanks in advance.

请先登录,再进行评论。

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 Creating, Deleting, and Querying Graphics Objects 的更多信息

标签

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by