How to use loop for plotting multiple plots and legend?
9 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Arshey Dhangekar
el 25 de Ag. de 2022
Comentada: Dyuman Joshi
el 12 de Sept. de 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 comentarios
Respuesta aceptada
Dyuman Joshi
el 25 de Ag. de 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 comentarios
Más respuestas (1)
Arshey Dhangekar
el 1 de Sept. de 2022
3 comentarios
Dyuman Joshi
el 12 de Sept. de 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)
Ver también
Categorías
Más información sobre Legend en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!