在matlab中使用legend命令时,如何减小图例符号与其对应标签之间的水平距离?
示例代码:
Line1=plot(x1,y1,'s');
Line2=plot(x2,y2,'o');
Line3=plot(x3,y3,'^');
Leg=legend([Line1, Line2, Line3],...
'Line1 text','Line2 text','Line3 text',...
'Location','NorthEast');
在matlab中使用legend命令时,如何减小图例符号与其对应标签之间的水平距离?
示例代码:
Line1=plot(x1,y1,'s');
Line2=plot(x2,y2,'o');
Line3=plot(x3,y3,'^');
Leg=legend([Line1, Line2, Line3],...
'Line1 text','Line2 text','Line3 text',...
'Location','NorthEast');
您可以找到 的子级Leg
,搜索Type
设置为的子级text
并重新定位它们。这是一个代码来展示如何做到这一点。它将它们向左移动 0.2,相对于图例框。
ch = get(Leg, 'Children');
textCh = ch(strcmp(get(ch, 'Type'), 'text'));
for iText = 1:numel(textCh)
set(textCh(iText), 'Position', get(textCh(iText), 'Position') + [-0.2 0 0])
end
我很好奇您为什么要这样做,但可能的解决方案可能是:
clf;
hold on;
x=0:0.1:2*pi;
plot(x,sin(x),'s');
plot(x,cos(x),'o');
ax=legend('sin','cos');
LEG = findobj(ax,'type','text');
set(LEG,'HorizontalAlignment','center')
您可以测试'center'
并'right'
使用任何有效的方法。如果两者都不起作用,请忽略我的回答。