How to set my legend differently from my plotting?
2 次查看(过去 30 天)
显示 更早的评论
I have a figure with 10 pairs of plots. Below is an example of one pair.
plot(x, y, 'r.', "LineWidth", 1);
p1 = pchip(x, y, xq);
plot(xq, p1, 'r-', "LineWidth", 1);
Basically, I first plot the dots and then their pchip line, thus having two symbols for each variable.
In my lengend, how do I have one symbol like the below:
'.-'
for each variable with a total of 10 legend inputs, instead of having 10 x 2 = 20 lengend inputs (dots and lines are treated as two separate inputs), as the default does?
Many thanks.
0 个评论
回答(1 个)
Olaf Bousche
2022-2-21
编辑:Olaf Bousche
2022-2-21
You can use the line handles to do this. For each plot j store the handle:
p_handles(1) = plot(x, y, 'r.', "LineWidth", 1, "DisplayName","I want this");
p1 = pchip(x, y, xq);
p_handles(2) = plot(xq, p1, 'r-', "LineWidth", 1, "DisplayName","I do not want this");
Then when calling the legend
legend(p_handles(1:2:end),"show")
Different symbols won't work but when you stick to similar colors or something of that nature, things will be obvious for the reader.
2 个评论
Olaf Bousche
2022-2-22
Sorry about that. I forgot the "hold on" and the "show" is not needed. Working example:
for j = 1:6
p(j) = plot(rand(10,1),"DisplayName",compose("plot %d",j));
hold on
end
legend(p(1:2:end))
Hope this works for you
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Legend 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!