我想在图例中添加一些文字,关于我在图中添加的文本(即t1变量)。
这是一个简单的情节示例:
xa = [1 1 1 1 2 2 2 2 3 3 3 3 5 5 5 5];
ya = rand(1,16);
plot(xa, ya,'o', [0 5], [0.5 0.5],'k--')
L = legend('values', 'average');
for ii = 1:numel(xa)
t1=text(xa(ii)+0.02, ya(ii), ['A_{' num2str(ii) '}'], ...
'HorizontalAlignment','left', ...
'VerticalAlignment','middle', ...
'FontSize', 8);
end
所以,我想在传说中有第三行,例如," A1 - A16"。我阅读了有关text
的文档,并尝试使用DisplayName
属性,但我无法使其正常运行。
答案 0 :(得分:1)
这是一种可能解决您问题的黑客行为。这不是优雅的,但诀窍是绘制一条白色的虚拟曲线,它不会出现在情节上,但你仍然可以指定一个图例。例如,在绘图调用中添加[0 0],[0 0],'w-'
,在图例条目中添加'A1-A16',结果如下图所示:
整个代码:
clear
clc
xa = [1 1 1 1 2 2 2 2 3 3 3 3 5 5 5 5];
ya = rand(1,16);
plot(xa, ya,'o', [0 5], [0.5 0.5],'k--',[0 0],[0 0],'w-')
L = legend('values', 'average', 'A1-A16');
for ii = 1:numel(xa)
t1=text(xa(ii)+0.02, ya(ii), ['A_{' num2str(ii) '}'], ...
'HorizontalAlignment','left', ...
'VerticalAlignment','middle', ...
'FontSize', 8);
end
哈哈看起来不错。当然,如果你改变轴的背景颜色,你需要改变虚线/图的颜色,但它应该工作。 希望有所帮助!
答案 1 :(得分:0)
您可以通过获取最后一个单元格,修改单元格并将其重新设置,将新字符串附加到图例中:
leghandle = findall(gcf, 'tag', 'legend');
legstr = get(leg,'String'); % or just get L
% ensure legstr is a cell, not a string
if ischar(legstr)
legstr = mat2cell(legstr);
end
legstr(end+1) = {'A1-A16'};