2013-06-30 208 views
3

在matlab中使用圖例命令時,如何減少圖例符號及其對應標籤之間的水平距離?Matlab:減少圖例中符號和標籤之間的間距

示例代碼:

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

回答

5

你可以找到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 
+0

謝謝!這正是我想要做的。 – mrsoltys

+0

很高興能幫到你! –

+0

這在R2015a中不起作用 – Veridian

0

我很好奇,爲什麼你要做到這一點,但一個可能的解決方案可能是:

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',並可使用任何工作。如果兩者都不起作用,請忽略我的回答

+0

謝謝,好主意,但這會導致圖例文字與符號重疊。我只是想提高我的情節的可讀性,我覺得就目前而言,傳奇文字和符號之間只有太多的空間 – mrsoltys