How to use loop for plotting multiple plots and legend?
11 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Arshey Dhangekar
am 25 Aug. 2022
Kommentiert: Dyuman Joshi
am 12 Sep. 2022
I want to plots mulplits plots on and I have single x time axis and temp1 upto temp20 similalry so how to use loop here for labeling the legend and plots instead of writing for 20 times.
t=readtable ()
plot (t.time,t.temp1, .t.time,temp20)
legend ("Temp1",....,"Temp2")
0 Kommentare
Akzeptierte Antwort
Dyuman Joshi
am 25 Aug. 2022
What you want to do is possible but quite more tedious than what you did.
y=readtable('test file.xlsx');
z=cell(1,20);
for i=1:20
z{i}=sprintf('temp%d', i); %collecting legend labels in a cell array
plot(table2array(y(:,'Time')),table2array(y(:,z{i})))
hold on
end
hold off
legend(z,'Location', 'best','FontSize',6 , 'NumColumns',4)
0 Kommentare
Weitere Antworten (1)
Arshey Dhangekar
am 1 Sep. 2022
3 Kommentare
Dyuman Joshi
am 12 Sep. 2022
You can use rand() (which I guess is the default option as well) to obtain different colors. Though there's a chance that 2 or more colors seem similar, for eg -
x=0:0.01:10;
for i=1:20
plot(x,sin(x).^i,'Color',rand(1,3))
z{i}=sprintf('sin^{%d} x', i);
hold on
end
legend(z,'Location', 'best','FontSize',6 , 'NumColumns',4)
%11-13, 16-18 look similar
Or you can define particular array for it, to distinguish better in between colors.
A random example -
y = (dec2base(0:19,3)-'0')/2;
figure
for i=1:20
plot(x,cos(x).^i,'Color',y(i,:))
z{i}=sprintf('cos^{%d} x', i);
hold on
end
legend(z,'Location', 'best','FontSize',6 , 'NumColumns',4)
Siehe auch
Kategorien
Mehr zu Legend 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!