How to update plot data manually?
67 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Is there a way to manipulate plot data without showing the updated plot information and then manually update the information all at once?
What I would like to do:
I have four plots and for each plot I manipulate the data and axes. The updates can be seen in the order they are perfromed. I would like to update the each individual axes and "draw" the updates all at once.
Clarification: I am working within a GUI designed in GUIDE. All plots are on the same figure.
0 Kommentare
Antworten (1)
Adam Danz
am 22 Mai 2019
Bearbeitet: Adam Danz
am 30 Mai 2019
% Create your 4 axes and their initial lines
x = -pi :.1: pi;
fh = figure();
subplot(2,2,1)
h1 = plot(x,sin(x));
subplot(2,2,2)
h2 = plot(x,2*sin(x));
subplot(2,2,3)
h3 = plot(x,cos(x));
subplot(2,2,4)
h4 = plot(x,2*cos(x));
% Setup data source
% Set up which variables will be used to define
% the (x,y) coordinates for each line object
set(h1, 'XDataSource', 'x', 'YDataSource', 'y1')
set(h2, 'XDataSource', 'x', 'YDataSource', 'y2')
set(h3, 'XDataSource', 'x', 'YDataSource', 'y3')
set(h4, 'XDataSource', 'x', 'YDataSource', 'y4')
% Change the plot data (axes won't update yet)
x = pi : 0.1 : 2*pi;
y1 = sin(x);
y2 = 2*sin(x);
y3 = cos(x);
y4 = 2*cos(x);
% Update all axes
refreshdata(fh, 'caller')
In my example I supplied the figure handle in refreshdata() but you can supply a vector of line objects ([h1,h2,h3,h4]) or axis handles.
Alternatively, you could use drawnow() at the end of the updating loop where you update the XData and YData properties.
7 Kommentare
Adam Danz
am 22 Mai 2019
Bearbeitet: Adam Danz
am 29 Mai 2019
The descriptions in the links to the documentation I provided will answer that. drawnow() merely updates all plots if they haven't been updated already. This is sometimes necessary when creating a plot within a loop where you want the axes to update every iteration rather than at the end of the loop.
The refreshdata() command just updates the line objects that were setup using the X/YDatdaSource properties.
Siehe auch
Kategorien
Mehr zu Graphics Performance finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!