繁体   English   中英

将后续图解添加到MATLAB中的图例

[英]Add subsequent plot to legend in matlab

我目前正在执行一个迭代过程,在此过程中,我将创建一个图,添加一个图并附加一个图例项。 我作为一系列命令来执行此操作,但是已在下面的脚本中收集了所有这些命令。 请注意,这不能是脚本,因为实际的绘制取决于外部进程,因为我无法控制外部进程,因此我必须对其进行物理迭代。

>> x = [0:1:10]
>> y1 = []
>> y2 = []
>> y3 = []
>> figure
>> hold on

>> for i = 1:size(x,2)
    y1(i) = x(i)^2
end

>> plot(x,y1,'b')
>> legend('x^2')

>> for i = 1:size(x,2)
    y2(i) = 2*x(i)^2
end

>> plot(x,y2,'r')
>> legend('2*x^2')

>> for i = 1:size(x,2)
    y3(i) = 3*x(i)^2
end

>> plot(x,y3,'g')
>> legend('3*x^2')

正如预期的那样,这将创建一个具有所关注的三个功能的图,但其中仅包含最后一个项目的图例。 我对此感到不满意,因为当我将其作为一系列命令进行操作时,每次都必须创建一个包含旧项目和新项目的新图例。 为了获得所需的结果,必须按如下所示修改命令

>> x = [0:1:10]
>> y1 = []
>> y2 = []
>> y3 = []
>> figure
>> hold on

>> for i = 1:size(x,2)
    y1(i) = x(i)^2
end

>> plot(x,y1,'b')
>> legend('x^2')

>> for i = 1:size(x,2)
    y2(i) = 2*x(i)^2
end

>> plot(x,y2,'r')
legend('x^2','2*x^2')

>> for i = 1:size(x,2)
    y3(i) = 3*x(i)^2
end

>> plot(x,y3,'g')
>> legend('x^2', 2*x^2','3*x^2')

什么是将最新添加的图添加到当前图例而不必重写所有先前内容的有效方法? 谢谢。

您不仅可以附加图例,还可以在不了解之前的情况下调用它。 这取决于您将图例分配给变量,并使用其String属性来调用先前的条目。

% define plotting variables here
x=0:0.1:1; y1=x.^2; y2=2*x.^2; y3=3*x.^2;
% initialise figure   
figure; hold on;
% plot 1
plot(x, y1, 'b');
L = legend('x^2');
% plot 2
plot(x, y2, 'r');
L = legend([L.String, {'2*x^2'}]);
% plot 3
plot(x, y3, 'k');
L = legend([L.String, {'3*x^2'}]);

结果:

情节

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM