Help With Plot Legend
2 次查看(过去 30 天)
显示 更早的评论
hello,
if i have a cell array of strings for example:
cell{1}='st1';
cell{2}='st2';
cell{3}='st3';
and make a plot with 3 lines each with variable name cell{n}.
Why is it that writing:
legend(cell{1}, cell{2}, cell{3})
only returns a legend with the one variable name cell{3} in it?
Is there a way of doing this for more than 3 variables using a loop?
2 个评论
Walter Roberson
2012-5-11
Duplicate is at http://www.mathworks.com/matlabcentral/answers/38113-plot-help
Dr. Seis
2012-5-12
I guess the question is... how is your plots set up? Can you copy/paste that part of your code?
回答(2 个)
Dr. Seis
2012-5-11
If you are just trying to apply the 3 legend strings to 3 lines on a plot, then all you need to do is:
legend(cell)
Take a look at these other posts related to legend entries for more help:
and
0 个评论
Image Analyst
2012-5-11
It doesn't. Here, try this:
cellArray{1}='st1';
cellArray{2}='st2';
cellArray{3}='st3';
colorMap = lines(8)
for k = 1:3
y = rand(1,10);
plot(y, 'Color', colorMap(k,:));
hold on;
end
legend(cellArray{1}, cellArray{2}, cellArray{3});
But I did notice something very bad in your code. You overwrote the built-in MATLAB function called "cell" with your variable named "cell." Don't do that. Other common functions/entities people destroy are "i", "j", and "image".
2 个评论
Image Analyst
2012-5-12
I guess I don't get it. You could call plot() 3 times with different variables and call legend and have all variable names show up in the legend. You could make 3 arrays, st1, st2, and st3, and call plot(st1), plot(st2), and plot(st3) and then call legend and have 3 lines with each name beside a line in the legend.
Walter Roberson
2012-5-12
IA, my comment was in response to a comment from someone else that has since been deleted.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Legend 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!