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.

 Akzeptierte Antwort

Mario Malic
Mario Malic am 1 Jan. 2021

0 Stimmen

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 Kommentare

Ali Komai
Ali Komai am 1 Jan. 2021
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.
Ali Komai
Ali Komai am 1 Jan. 2021
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');
Ali Komai
Ali Komai am 2 Jan. 2021
Ah I see, the candle is appended automatically at the end. Probably works through the included datetime. Nice!
Thank you very much!
Mario Malic
Mario Malic am 2 Jan. 2021
Bearbeitet: Mario Malic am 2 Jan. 2021
You're welcome. You can accept my answer on the blue button, thanks in advance.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Creating, Deleting, and Querying Graphics Objects finden Sie in Hilfe-Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by