2012-05-24 21 views
6

Illustrationcrecer mediante programación una figura en matplotlib

¿Cómo puedo hacer crecer el tamaño de una figura en matplotlib, para dar cabida a un número variable de argumentos secundarios, manteniendo constantes las alturas?

Estoy trazando un gran número de figuras, cada una de las cuales consiste en una subtrama principal (verde) que debe cubrir el 90% de la altura de la imagen. Además de eso, estoy agregando un número variable de subparcelas de anotación (naranja), que cada una debe ocupar un 10% de altura. En otras palabras, el caso base de una figura con una anotación daría como resultado una cifra de altura del 100%, y una figura con 5 anotaciones tendría una altura total del 140%

Un comando que me permite trazar la principal trazar luego hacer crecer la figura, ya que añado cada subparcela sería ideal.

Respuesta

1

No creo que esta sea una opción automática. Podría estar equivocado. Hay figure.set_figheight que ajusta el tamaño en pulgadas. El problema es que los ejes se definen en relación con las dimensiones de la figura, por lo que las subtramas de la figura antes de cambiar el tamaño se escalan para rellenar el espacio extra del 40%.

Debería escribir una rutina que ajuste la altura de la figura y la escala y desplazar cualquier cosa en la figura. No es imposible de hacer, pero una vez más, no creo que esta característica aún exista.

0
[email protected]:~/temp$ python 
Python 2.6.5 (r265:79063, Apr 16 2010, 13:57:41) 
[GCC 4.4.3] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import matplotlib.pyplot as plt 
>>> fig=plt.figure() 
>>> fig.get_size_inches() 
array([ 8., 6.]) 
>>> fig.set_size_inches([8.,12.]) 
>>> ax=fig.add_subplot(111) 
>>> ax.plot([1,1,2],[3,4,5],'ro-') 
[<matplotlib.lines.Line2D object at 0x2428590>] 
>>> ax1 = fig.add_subplot(212) 
>>> ax1.plot([2,3,4],[8,9,11],'bs-') 
[<matplotlib.lines.Line2D object at 0x2461450>] 
>>> fig.subplots_adjust() 

produce enter image description here

y usted puede ajustar fácilmente aún más.

Cuestiones relacionadas