更改图例文字

时间:2014-02-26 17:13:59

标签: matlab legend matlab-figure

我有一个有几行和相应图例的图形。例如:

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')

旧图例消失,只出现一个新图例。如何保留整个图例并仅更改一个条目?

1 个答案:

答案 0 :(得分:3)

首先,在创建图形时使用句柄,或者从当前图形中提取图例句柄:

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

然后您可以检索当前文本:

ltext = get(h1,'string');

ltext是字符串的单元格数组。只需更换您想要的那个(假设您知道图例中的数字):

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