How do I create a legend involving multiple plots created in a for loop?
44 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
I am trying to create a figure with 3 plots and a legend detailing what each plot is. Each plot is created in a for loop.
for j= 1:3
y = j;
figure(1);
plot(y);
hold on;
end
Thus, there will be 3 lines labeled in the legend. I appreciate any help that you all can provide!
0 Commenti
Risposte (3)
Adam Danz
il 26 Apr 2019
Modificato: Adam Danz
il 26 Apr 2019
Here are some demos you can follow.
Option 1: add legend labels when you call legend
figure()
axes
hold on
nLoops = 3;
ph = gobjects(1,nLoops);
for j= 1:nLoops
y = randn(10,1)+j;
ph(j) = plot(y, '-o');
end
legend(ph, {'first', 'second', 'third'})
Option 2: add legend labels within the loop
figure()
axes
hold on
nLoops = 3;
ph = gobjects(1,nLoops);
for j= 1:nLoops
y = randn(10,1)+j;
ph(j) = plot(y, '-o', 'DisplayName', sprintf('line %d',j));
end
legend(ph)
4 Commenti
Image Analyst
il 27 Apr 2019
Try this:
figure()
hold on
numberOfLoops = 3;
for k = 1 : numberOfLoops
y = randn(10,1) + k;
plot(y, '.-', 'MarkerSize', 20, 'LineWidth', 2);
% Make up a string for this particular line plot.
legends{k} = sprintf('This is plot #%d', k);
end
legend(legends) % Display all the legend texts.
grid on;

1 Commento
Vedere anche
Categorie
Scopri di più su Legend in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!