2014-02-26 51 views
0

我有一個圖形,有幾行和相應的圖例。例如:更改數字圖例文字

figure; hold all; 
plot(sin(1:0.1:10)); 
plot(cos(1:0.1:10)); 
legend('sin', 'cos'); 

我想知道是否可以更改特定圖例條目的文本。如果我這樣做

hline = findobj(gcf, 'type', 'line'); 
legend(hline(5), 'new text') 

舊的圖例消失,只有一個條目出現一個新的圖例。我怎樣才能保留整個傳奇,只改變一個條目?

+0

爲什麼不簡單地通過'legend('sin','new text');'' – herohuyongtao

+0

@herohuyongtao:因爲我想改變一個現有的傳說。所以我需要首先以某種方式從圖中獲得它。 – texnic

回答

3

首先,拿在創建人物,或者,從目前的數字提取傳說手柄的手柄:

h1 = legend('sin', 'cos'); 
h1 = findobj(gcf, 'tag', 'legend'); 

然後你可以檢索當前文本:

ltext = get(h1,'string'); 

ltext是一個字符串的單元格數組。只需要替換你想要的那個(假設你知道圖例中的哪個數字):

ltext{n} = 'new text'; 
set(h1,'string',ltext); 
+0

正是我想要的。謝謝! – texnic