¿Cómo cambio el tamaño de la figura con subtramas?


287

Me encontré con este ejemplo en el sitio web de Matplotlib. Me preguntaba si era posible aumentar el tamaño de la figura.

Lo intenté con

f.figsize(15,15)

Pero no hace nada.

Respuestas:


526

Si ya tiene el objeto figura, use:

f.set_figheight(15)
f.set_figwidth(15)

Pero si usa el comando .subplots () (como en los ejemplos que está mostrando) para crear una nueva figura, también puede usar:

f, axs = plt.subplots(2,2,figsize=(15,15))

12
también hay fig.set_size_inchesque establecer la altura y el ancho juntos
Francesco Montesano

1
Esto no funciona, puede establecer la altura a lo que desee, pero nunca será más grande que su monitor.

2
Esto no tiene que hacer nada con su monitor. ¿Qué pasa si sale a un png? ¿Estás diciendo que nunca puede ser más grande que la resolución de pantalla? Es la combinación de tamaño en pulgadas con el dpi que determina el tamaño en píxeles.
Rutger Kassies

incluir figsize en la llamada a subplots () no parece funcionar. llamar a f.set_figheight, sin embargo, funciona.
Vicki B

¿Es posible cambiar el tamaño de la subtrama en sí sin cambiar el tamaño del higo?
Alexis.Rolland

38

Alternativamente, cree un figure()objeto usando el figsizeargumento y luego use add_subplotpara agregar sus subtramas. P.ej

import matplotlib.pyplot as plt
import numpy as np

f = plt.figure(figsize=(10,3))
ax = f.add_subplot(121)
ax2 = f.add_subplot(122)
x = np.linspace(0,4,1000)
ax.plot(x, np.sin(x))
ax2.plot(x, np.cos(x), 'r:')

Ejemplo simple

Los beneficios de este método son que la sintaxis está más cerca de las llamadas que en subplot()lugar de subplots(). Por ejemplo, las subtramas no parecen admitir el uso de a GridSpecpara controlar el espaciado de las subtramas, pero ambos subplot()y add_subplot()do.


10
¿Alguna posibilidad de agregar 'tamaño' a ax y ax2 por separado?
M. Gopal

2
Si entiendo correctamente, ¿desea establecer el tamaño relativo de los dos ejes? En ese caso, creo que está buscando esta pregunta: stackoverflow.com/questions/10388462/…
aquirdturtle
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.