从matlab图中传出单个图中的每条曲线

时间:2016-12-06 05:56:29

标签: matlab plot matlab-figure legend

我想在matlab的单个图中绘制四条曲线,所以我使用的是hold on。此外,我想为每条曲线创建一个图例,所以我编写了代码:

clear all
x=linspace(0,10,100);
x2=linspace(-5,15,100);
x3=linspace(-10,20,100);
x4=linspace(35,40,100);

figure(1)

plot(x,x2)

legend('x2')
hold on 

plot(x,x3)

legend('x3')
hold on

plot(x,x4)

legend('x4')
hold on

plot(x,x)

legend('x')

hold off

但结果是我的所有曲线都是相同的颜色,只是最后一个传奇“x”出现在图中(见下文)。

enter image description here

如何为每条曲线设置一个图例?所有曲线必须具有不同的颜色。

2 个答案:

答案 0 :(得分:1)

这取决于你的matlab版本。在旧版本(和八度音阶)中,通过使用hold on添加的绘图获得相同的颜色。在R2015b中(我不知道何时引入),各个图形会有不同的颜色,但仍然只显示一个图例。 Plots using Matlab R2015b

要获得多种颜色和多个图例条目,您可以指定要在一次调用中绘制的所有数据,对于图例也是如此:

plot(x, x, x, x2, x, x3, x, x4);

plot(x, [x', x2', x3', x4']);

对于传说,采用相同的方法:

legend('x', 'x2', 'x3', 'x4');

enter image description here

答案 1 :(得分:0)

如果你想在不知道参赛作品数量的情况下建立一个传奇,你会想要搜索"动态传奇"。例如,请参见此处: http://undocumentedmatlab.com/blog/legend-semi-documented-feature