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.

 Accepted Answer

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 Comments

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.

Sign in to comment.

More Answers (0)

Categories

Find more on Creating, Deleting, and Querying Graphics Objects in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!