Multiple Plots App Designer
Afficher commentaires plus anciens
I am trying to plot graphs of various iterations into the same graph with App Designer. Temps_ON, Temps_OFF,... are columns of a table.
The problem encountered is that it only plots the last value (for i=3 in this case). Any advice on how to manage this ?
while i<4
x=t.Temps_ON(i);
y=zeros(1,x);
y(1) =t.Puissance_ON(i);
x1= t.Temps_OFF(i);
y1=zeros(1,x1);
y1(1) = t.Puissance_OFF(i);
x2=t.Temps_reveil(i);
y2=zeros(1,x2);
y2(1) =t.Puissance_reveil(i);
% Plot modified data
for time=1:x-1
y(time+1)=y(time);
end
for time=1:x1-1
y1(time+1)=y1(time);
end
for time=1:x2-1
y2(time+1)=y2(time);
end
plot(app.UIAxes,(1:x),y,'b',(1+x:x1+x),y1,'b',(x+x1+1:x+x1+x2),y2,'b');
i=i+1;
end
5 commentaires
Jakob B. Nielsen
le 15 Fév 2021
You need to set
hold on
By default, hold is set to "off". That means every new plot command overwrites any previously plotted items. If you set hold to "on", it will 'hold on' to whatever you have already plotted.
Mario Malic
le 15 Fév 2021
In App Designer, you have to specify axes for which hold on will be active.
hold(app.UIAxes, 'on')
Frédéric LE QUILLIO
le 15 Fév 2021
Mario Malic
le 15 Fév 2021
Do you have any errors? Try checking these values for each step, maybe they are empty, or they are a single point. Single points are not visible by default, you'll need to specify the marker for those.
(1:x)
y
(1+x:x1+x)
(x+x1+1:x+x1+x2)
y2
Frédéric LE QUILLIO
le 15 Fév 2021
Réponses (1)
Nikhil Sonavane
le 23 Mar 2021
0 votes
In my understanding, hold on retains plots in the current axes so that new plots added to the axes do not delete existing plots. It doesn't update the graph when an entry is changed in the table unless you run the code again. You can refer to the documentation of hold for more details about the function.
Catégories
En savoir plus sur 2-D and 3-D Plots dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!