¿Cómo se cambia el tamaño de la figura dibujada con matplotlib?
figura le indica la firma de la llamada:
from matplotlib.pyplot import figure
figure(num=None, figsize=(8, 6), dpi=80, facecolor='w', edgecolor='k')
figure(figsize=(1,1))
crearía una imagen de pulgada por pulgada, que sería de 80 por 80 píxeles a menos que también des un argumento diferente de ppp.
Nota de declinación:** Según la guía oficial de Matplotlib, ya no se recomienda el uso del módulo
pylab
. Por favor, considere usar el módulomatplotlib.pyplot
en su lugar, como se describe en esta otra respuesta.
Lo siguiente parece funcionar:
from pylab import rcParams
rcParams['figure.figsize'] = 5, 10
Esto hace que el ancho de la figura sea de 5 pulgadas, y su altura de 10 pulgadas.
La clase Figure utiliza este valor por defecto para uno de sus argumentos.
El primer enlace en Google para 'matplotlib figure size'
es AdjustingImageSize (Google cache of the page).
Aquí hay un script de prueba de la página anterior. Crea archivos test[1-3].png
de diferentes tamaños de la misma imagen:
#!/usr/bin/env python
"""
This is a small demo file that helps teach how to adjust figure sizes
for matplotlib
"""
import matplotlib
print "using MPL version:", matplotlib.__version__
matplotlib.use("WXAgg") # do this before pylab so you don'tget the default back end.
import pylab
import numpy as np
# Generate and plot some simple data:
x = np.arange(0, 2*np.pi, 0.1)
y = np.sin(x)
pylab.plot(x,y)
F = pylab.gcf()
# Now check everything with the defaults:
DPI = F.get_dpi()
print "DPI:", DPI
DefaultSize = F.get_size_inches()
print "Default size in Inches", DefaultSize
print "Which should result in a %i x %i Image"%(DPI*DefaultSize[0], DPI*DefaultSize[1])
# the default is 100dpi for savefig:
F.savefig("test1.png")
# this gives me a 797 x 566 pixel image, which is about 100 DPI
# Now make the image twice as big, while keeping the fonts and all the
# same size
F.set_size_inches( (DefaultSize[0]*2, DefaultSize[1]*2) )
Size = F.get_size_inches()
print "Size in Inches", Size
F.savefig("test2.png")
# this results in a 1595x1132 image
# Now make the image twice as big, making all the fonts and lines
# bigger too.
F.set_size_inches( DefaultSize )# resetthe size
Size = F.get_size_inches()
print "Size in Inches", Size
F.savefig("test3.png", dpi = (200)) # change the dpi
# this also results in a 1595x1132 image, but the fonts are larger.
Salida:
using MPL version: 0.98.1
DPI: 80
Default size in Inches [ 8. 6.]
Which should result in a 640 x 480 Image
Size in Inches [ 16. 12.]
Size in Inches [ 16. 12.]
Dos notas:
Los comentarios del módulo y la salida real difieren.
Esta respuesta permite combinar fácilmente las tres imágenes en un archivo de imagen para ver la diferencia de tamaños.