1239 votos

¿Cómo se puede cambiar el tamaño de las figuras trazadas con matplotlib?

¿Cómo se puede cambiar el tamaño de la figura dibujada con matplotlib?

741voto

Jouni K. Seppänen Puntos 15129

la figura indica que la llamada de la firma:

figure(num=None, figsize=(8, 6), dpi=80, facecolor='w', edgecolor='k')

Así, figure(figsize=(1,1)) crea una pulgada por pulgada de la imagen, que será de 80 por 80 píxeles a menos que usted también dar un dpi diferente argumento.

567voto

Pete Puntos 2216

Si ya tienes la figura creada, usted puede rápidamente hacer esto:

fig = matplotlib.pyplot.gcf()
fig.set_size_inches(18.5,10.5)
fig.savefig('test2png.png',dpi=100)

276voto

tatwright Puntos 1739

El siguiente parece que funciona:

de pylab import *
rcParams['figure.figsize'] = 5, 10

Esto hace que la figura del ancho de 5 centímetros, y su altura de 10 pulgadas.

La Figura de la clase, a continuación, utiliza como valor predeterminado para uno de sus argumentos.

69voto

J.F. Sebastian Puntos 102961

El primer enlace de Google para 'matplotlib figure size' es AdjustingImageSize (caché de google de la página: http://74.125.77.132/search?q=cache:http://www.scipy.org/Cookbook/Matplotlib/AdjustingImageSize).

He aquí una secuencia de comandos de prueba desde la página de arriba. Crea test[1-3].png archivos de tamaños diferentes 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 matplotlib.numerix as N

# Generate and plot some simple data:
x = N.arange(0, 2*N.pi, 0.1)
y = N.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:

  1. El módulo de comentarios y el real de salida diferentes.

  2. Esta respuesta permite fácilmente para combinar los tres imágenes en un archivo de imagen para ver la diferencia de tamaños.

22voto

Renaud Puntos 3226

Intente comentar la fig = ... de la línea de

%matplotlib inline
import numpy as np
import matplotlib.pyplot as plt

N = 50
x = np.random.rand(N)
y = np.random.rand(N)
area = np.pi * (15 * np.random.rand(N))**2

fig = plt.figure(figsize=(18, 18))
plt.scatter(x, y, s=area, alpha=0.5)
plt.show()

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X