Adicione a lenda fora dos eixos sem redimensionar no Matlab
Pergunta
Eu tenho uma GUI no Matlab com um conjunto de eixos pré-colocados. Estou usando a propriedade de localização da legenda para colocá -la no lado direito dos eixos. No entanto, ao fazer isso, os eixos são re-escalonados para que os eixos+legenda adotem a largura original dos eixos. Existe alguma maneira de contornar o relembro?
Exemplo:
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)
Até agora eu entendo:
Legenda do lugar:
legend('sin(x)','location','eastoutside')
... aaaaand ...
O Matlab esmaga tudo no espaço dos eixos originais. Alguma maneira de contornar isso?
Solução
EDITAR
%# 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)])
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow