在轴外添加图例而不在MATLAB中重新缩放

Dor*_*oom 14 matlab plot axes legend

我在MATLAB中有一个GUI,预先放置了一组轴.我正在使用图例的位置属性将其放置在轴的右侧.但是,通过这样做,轴会重新缩放,以便轴+图例占据轴的原始宽度.有没有办法规避重新规模?

例:

x=0:.1:10;
y=sin(x);
figure
pos=get(gca,'position');
pos(3)=.5; %#re-size axes to leave room for legend
set(gca,'position',pos)
plot(x,y)
Run Code Online (Sandbox Code Playgroud)

到目前为止,我得到:

替代文字

地方传奇:

legend('sin(x)','location','eastoutside')
Run Code Online (Sandbox Code Playgroud)

... ... aaaaand

替代文字

MATLAB将它全部收入原始轴空间.有什么方法吗?

Amr*_*mro 8

编辑

%# create three axes with custom position
x=0:.1:10;
y=sin(x);
hAx1 = axes('Position',[0.05 0.05 0.7 0.2]); plot(hAx1, x,y)
hAx2 = axes('Position',[0.05 0.4 0.7 0.2]); plot(hAx2, x,y)
hAx3 = axes('Position',[0.05 0.75 0.7 0.2]); plot(hAx3, x,y)

%# add legend to middle one
h = legend(hAx2, 'sin(x)'); pos = get(h,'position');
set(h, 'position',[0.8 0.5 pos(3:4)])
Run Code Online (Sandbox Code Playgroud)

替代文字