Añadir leyenda fuera de ejes y sin cambio de escala en MATLAB
Pregunta
Tengo una interfaz gráfica de usuario en MATLAB con un conjunto de ejes colocado previamente. Estoy usando la propiedad de ubicación de la leyenda para colocarlo a la derecha de los ejes. Sin embargo, al hacer esto los ejes consiguen remodelarán manera que los ejes + leyenda ocupan el ancho original de los ejes. ¿Hay alguna manera de evitar la re-tamaño?
Ejemplo:
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)
Hasta ahora me sale:
Lugar leyenda:
legend('sin(x)','location','eastoutside')
... aaaaand ...
MATLAB aplasta todo en el espacio ejes originales. Cualquier forma de evitar esto?
Solución
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 bajo: CC-BY-SA con atribución
No afiliado a StackOverflow