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:

text alt

Lugar leyenda:

legend('sin(x)','location','eastoutside')

... aaaaand ...

text alt

MATLAB aplasta todo en el espacio ejes originales. Cualquier forma de evitar esto?

¿Fue útil?

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)])

text alt

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top