Add variable legend to a plot without for loop
Show older comments
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.
Accepted Answer
More Answers (1)
Walter Roberson
on 11 Mar 2021
Edited: Walter Roberson
on 11 Mar 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 Comments
Kien Pham
on 11 Mar 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]);
Kien Pham
on 11 Mar 2021
Categories
Find more on Elementary Polygons in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!



