簡體   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