2011-07-13 36 views
42

Duplicar posible:
MATLAB subplot marginCómo reducir los bordes alrededor de las subtramas en matlab?

en Matlab, una cantidad excesiva de espacio se desperdicia alrededor de subtramas. Por ejemplo, en este ejemplo:

t = 0:0.001:2*pi+0.001; 
figure(2); 
for i = 1 : 25; 
    subplot(5,5,i); 
    plot(t, sin(i*t)); 
    axis off 
end 

Example of wasted white space in subplots

más del 50% del espacio en la figura se pierde en forma de "en blanco" Me gustaría reducir el espacio en blanco que hacia abajo, pero no han tenido éxito a identifica un mecanismo para hacerlo ¿Pensamientos?

Gracias John

+2

Aquí es una lista de otros poss soluciones posibles: [subtrama cerrada] (http://www.mathworks.com/matlabcentral/fileexchange/27991-tight-subplot), [jointfig.m] (http://www.mathworks.com/matlabcentral/fileexchange/304 -jointfig-m), [Algunos trucos de Matlab para hacer figuras] (http://nibot-lab.livejournal.com/73290.html), [Pequeña utilidad útil] (http://groups.google.com/group/ comp.soft-sys.matlab/browse_thread/thread/5706e8dfbb4a418/f5154f1df6efaff4), [Reducir el espacio gris alrededor de las imágenes en una figura] (http://www.mathworks.com/matlabcentral/answers/6254-reduce-grey-space- around-images-in-a-figure) – Amro

Respuesta

45

La función subaxis en el intercambio de archivos le permite especificar márgenes para subtramas.

Ejemplo de uso:

t = 0:0.001:2*pi+0.001; 
figure(2); 
for i = 1 : 25; 
    subaxis(5,5,i, 'Spacing', 0.03, 'Padding', 0, 'Margin', 0); 
    plot(t, sin(i*t)); 
    axis tight 
    axis off 
end 

enter image description here

6

Se les puede colocarse (o mediante programación) utilizando

subplot('Position',[left bottom width height]); 

De manera predeterminada, las coordenadas se normalizan. Así que una posición de [0.1 0.1 0.5 0.5] comenzará en 10% del camino en desde la esquina inferior izquierda, y tendrá un ancho igual a hasta la mitad del ancho de la figura, y una altura igual a la mitad de la altura de la figura .

Consulte la respuesta aceptada para obtener una solución integrada para los márgenes y el relleno.

4

tratar de reducir los valores por defecto en los ejes ocultos LooseInsets propiedad, como se describe en http://UndocumentedMatlab.com/blog/axes-looseinset-property/

Por ejemplo:

set(gca, 'LooseInset', get(gca,'TightInset')) 
+0

Al menos en mi ejemplo, esto no hace nada en 2011a. – John

+0

el espacio extra lo ocupan las etiquetas ocultas de ejes X & Y, y no creo que puedan eliminarse. Pero puede mejorar la situación de la siguiente manera: 'figura (2); para i = 1: 25; hax = hachas(); plot (t, sin (i * t)); eje apretado; eje apagado; rowIdx = fix ((i-1)/5); colIdx = mod (i-1,5); newPos = [. 2 * colIdx, 0.8-.2 * rowIdx, .2, .2]; set (gca, 'outer', newPos), end' –

+1

¿LooseInset funciona con subtramas? – roni

Cuestiones relacionadas