我有一个有几行和相应图例的图形。例如:
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 :(得分:3)
首先,在创建图形时使用句柄,或者从当前图形中提取图例句柄:
h1 = legend('sin', 'cos');
h1 = findobj(gcf, 'tag', 'legend');
然后您可以检索当前文本:
ltext = get(h1,'string');
ltext
是字符串的单元格数组。只需更换您想要的那个(假设您知道图例中的数字):
ltext{n} = 'new text';
set(h1,'string',ltext);