2011-02-22 12 views
22

Tengo dos parcelasPython/Matplotlib - Cambiar el tamaño relativo de una trama secundaria

import matplotlib.pyplot as plt 
plt.subplot(121) 
plt.subplot(122) 

Quiero plt.subplot(122) para ser mitad de ancho que plt.subplot(121). ¿Hay una manera directa de establecer los parámetros de altura y ancho para una subtrama?

+0

Posible duplicado de [subparcelas de diferentes tamaños de Matplotlib] (http://stackoverflow.com/questions/10388462/matplotlib-different-subplots) – Vincenzooo

Respuesta

11

Por simplemente especificando la geometría con "122", está obteniendo implícitamente el layou automático de columnas y filas de igual tamaño t.

Para personalizar la cuadrícula de diseño, debe ser un poco más específico. Consulte "Customizing Location of Subplot Using GridSpec" en los documentos de Matplotlib.

36

Véase el tutorial-spec cuadrícula: código

http://matplotlib.sourceforge.net/users/gridspec.html

Ejemplo:

import matplotlib.pyplot as plt 
import matplotlib.gridspec as gridspec 

f = plt.figure() 

gs = gridspec.GridSpec(1, 2,width_ratios=[2,1]) 

ax1 = plt.subplot(gs[0]) 
ax2 = plt.subplot(gs[1]) 

plt.show() 

También puede ajustar la relación de altura utilizando una opción similar en GridSpec

+0

Gracias por la sugerencia. No tengo acceso para importar matplotlib.gridspec como gridspec. ¿Hay otra manera? – thenickname

+0

¿El problema es que estás usando una versión anterior de matplotlib que no es compatible con GridSpec? No está claro en tu pregunta. – JoshAdel

+0

@thenickname: puede hacer 'import matplotlib' y llamar a' matplotlib.gridspac.GridSpec (1, 2, etc.) ' – heltonbiker

Cuestiones relacionadas