Add variable legend to a plot without for loop
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Kien Pham
el 11 de Mzo. de 2021
Comentada: Kien Pham
el 11 de Mzo. de 2021
I am plotting two 201x4 arrays, resulting in four 2-d lines. The y array is a time series so I want the legend to vary accordingly. I created a 1x4 cell with strings that show the time variation of my y variable. However, the result is not satisfactory as shown in the figure below:
My code attempt is below:
lgd = {'HGS 50-year','HGS 100-year','HGS 150-year','HGS 200-year'};
h2 = plot(x,y,'LineWidth',1.25,'DisplayName',char(lgd)');
legend;
I can easily accomplish what I need with a for loop but I do not want to do that because I think I am close to accomplishing what I need without it.
Please help. Thank you.
0 comentarios
Respuesta aceptada
Star Strider
el 11 de Mzo. de 2021
Editada: Star Strider
el 11 de Mzo. de 2021
This appears to work correctly:
x = 0:0.1:10;
y = exp(-(x-(0:4).').^2)./(1:5).';
figure
plot(x, y)
lgd = {'HGS 50-year','HGS 100-year','HGS 150-year','HGS 200-year'};
legend(lgd)
EDIT — (11 Mar 2021 at 21:34)
Added plot figure.
.
2 comentarios
Star Strider
el 11 de Mzo. de 2021
Yes.
Try this:
x = 0:0.1:10;
y = exp(-(x-(0:3).').^2)./(1:4).';
ya = exp(-(x-(0:3).'+0.1).^2)./(1:4).';
figure
hv = plot(x, y);
hold on
ha = plot(x, ya, '--k');
hold off
lgd = {'HGS 50-year','HGS 100-year','HGS 150-year','HGS 200-year'};
legend([ha(1); hv],{'Analytical',lgd{:}})
producing:
.
Más respuestas (1)
Walter Roberson
el 11 de Mzo. de 2021
Editada: Walter Roberson
el 11 de Mzo. de 2021
N = 20;
x = 1:N;
y = sort(rand(N,4));
lgd = {'HGS 50-year','HGS 100-year','HGS 150-year','HGS 200-year'};
h2 = plot(x,y,'LineWidth',1.25);
legend(h2, lgd)
3 comentarios
Walter Roberson
el 11 de Mzo. de 2021
N = 20;
x = 1:N;
y = sort(rand(N,4));
x2 = 1:N;
y2 = sort(rand(N,4));
lgd1 = {'Analytical'};
lgd2 = {'HGS 50-year','HGS 100-year','HGS 150-year','HGS 200-year'};
h1 = plot(x2,y2,'k--','LineWidth',1.25); hold on;
h2 = plot(x,y,'LineWidth',1.25);
hold off;
legend([h1(1); h2], [lgd1, lgd2]);
Ver también
Categorías
Más información sobre Automotive Applications 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!