2012-08-01 11 views
5

tengo una pregunta sobre el siguiente gráfico:Matlab: Colocación de diversas parcelas

enter image description here Esencialmente, tenemos aquí dos subtramas que tienen el mismo eje x. Me gustaría para ahorrar espacio ahora, y en lugar de tener 2 subtramas con dos etiquetas x-axix, me gustaría como eleminar el espacio entre ellas y apilarlas una encima de la otra.

¿Hay alguna manera fácil de hacerlo?

¡Muchas gracias! Patrick

%% Data 
t = 0:100; 
f1 = 0.3; 
f2 = 0.07; 
u1 = sin(f1*t); cu1 = 'r'; %red 
u2 = cos(f2*t); cu2 = 'b'; %blue 
v1 = 5*u1.^2;  cv1 = 'm'; %magenta 
v2 = 5*u2.^2;  cv2 = 'c'; %cyan 

figure; 
h(1) = subplot(2,1,1); % upper plot 
plot(t,u1,'Color',cu1,'DisplayName','u1'); hold on; 
plot(t,u2,'Color',cu2,'DisplayName','u2'); hold off; 

xlabel('Time t [s]'); 
ylabel('u [some unit]'); 
legend(gca,'show'); 

h(2) = subplot(2,1,2); % lower plot 
plot(t,v1,'Color',cv1,'DisplayName','v1'); hold on; 
plot(t,v2,'Color',cv2,'DisplayName','v2'); hold off; 

xlabel('Time t [s]'); 
ylabel('v [some unit^2]'); 
legend('show'); 

linkaxes(h,'x'); % link the axes in x direction (just for convenience) 

Respuesta

11

Retire los xticks de la trama superior:

set(h(1),'xticklabel',[]); 

y también eliminar el xlabel (eliminar o comentar esta línea en su código)

Ahora se mueven los dos más juntos por cambiando su posición:

pos=get(h,'position'); 
bottom=pos{2}(2); 
top=pos{1}(2)+pos{1}(4); 
plotspace=top-bottom; 
pos{2}(4)=plotspace/2; 
pos{1}(4)=plotspace/2; 
pos{1}(2)=bottom+plotspace/2; 

set(h(1),'position',pos{1}); 
set(h(2),'position',pos{2}); 

entonces obtendrá

enter image description here

Las etiquetas del eje y están comenzando a superponerse, por lo que también puede ser que desee para ajustar estos con

set(h(1),'ytick',[-0.5 0 0.5]); 

por ejemplo, o colocar un eje y en el lado derecho con:

set(h(2),'YAxisLocation','right') 
+1

En lugar de codificar duro la posición del eje, puede intentar tight_layout (http://matplotlib.sourceforge.net/users/tight_layout_guide.html). Reorganizará el eje para que las etiquetas no se superpongan. – imsc

Cuestiones relacionadas