2014-06-24 117 views

回答

1

如果您繪製了多條線,您需要隨時調整位置,並且需要做更多的工作,但以下內容適用於您的示例。

plot(1:10); % create a dummy line 
ha = legend('Plot'); %create a legend 
set(ha,'Units','pixels'); % set axes unit to pixels 
pos = get(ha,'Position'); % get the axes position 
set(ha,'Position',[pos(1) pos(2)-pos(3) pos(4) pos(3)]); % Set the new position 
hc = get(ha,'Children'); % Get the legend contents 
set(hc(3),'Position',[0.5 0.6 0],'Rotation',90); % Relocate and rotate text 
set(hc(2),'Xdata',[0.5 0.5],'YData',[0.1 0.5]); % rotate the line 
set(hc(1),'XData',0.5,'YData',0.3); % Rotate the Marker 
1

該示例並非完全自動化,但應設置您在正確的路線。你需要與text./旋轉包含傳奇的盒子,標籤

% Example plot 
plot(1:10) 
h = legend('something') 

% Rotate legend 
set(h,'CameraUpVector', [1 0 0], 'Units','pixels','position',[460 230 25 150]) 

% Rotate text label 
txt = findobj(h,'type','text'); 
set(txt,'rotation',90) 

不幸的是,功能恢復'CameraUpVector'保存。

+0

使用絕對像素值調整位置在一個簡單的情況下工作,但在複雜的副圖數字中給出意想不到的結果。 –

+0

我同意,這是我最初的免責聲明的一部分。 – Oleg