How do I create a legend involving multiple plots created in a for loop?
38 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
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 commentaires
Réponses (3)
Adam Danz
le 26 Avr 2019
Modifié(e) : Adam Danz
le 26 Avr 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 commentaires
Image Analyst
le 27 Avr 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 commentaire
Voir également
Catégories
En savoir plus sur Legend dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!