¿Cómo se cambia el tamaño de la figura dibujada con matplotlib?
python
graph
matplotlib
plot
visualization
tatwright
fuente
fuente
plt.figure(figsize=(20,10))
fig, ax = plt.subplots(figsize=(20, 10))
fig = plt.gcf()
->fig.set_size_inches(11,8)
para evitar la confusión de una vez por todas.Respuestas:
la figura le indica la firma de la llamada:
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 proporcione un argumento de dpi diferente.fuente
show()
para crear una ventana emergente, debe llamarfigure(num=1,...)
antes de trazar algo: pyplot / pylab crea una figura tan pronto como dibuja algo, y aparece el tamaño de la ventana emergente para ser reparado en este punto.Si ya tiene la figura creada, puede hacer esto rápidamente:
Para propagar el cambio de tamaño a una ventana GUI existente, agregue
forward=True
fuente
imshow
, ahora estoy usando este código justo después de eliminar el espacio alrededor del área de trazado conplt.subplots_adjust(left=0.0, right=1.0, bottom=0.0, top=1.0)
.fig.set_dpi(100)
.Lo siguiente parece funcionar:
Esto hace que el ancho de la figura sea de 5 pulgadas y su altura de 10 pulgadas .
La clase Figura luego usa esto como el valor predeterminado para uno de sus argumentos.
fuente
fig.set_size_inches(18.5, 10.5, forward=True)
trabajó.UTILIZANDO plt.rcParams
También existe esta solución alternativa en caso de que desee cambiar el tamaño sin utilizar el entorno de la figura. Entonces, en caso de que esté utilizando,
plt.plot()
por ejemplo, puede establecer una tupla con ancho y alto.Esto es muy útil cuando traza en línea (por ejemplo, con IPython Notebook). Como notó @asamaier, es preferible no poner esta declaración en la misma celda de las declaraciones de importación.
Conversión a cm
La
figsize
tupla acepta pulgadas, por lo que si desea establecerla en centímetros, debe dividirla por 2.54. Consulte esta pregunta .fuente
plt.rcParams["figure.figsize"] = (20,3)
a un celular adicional. Cuando lo llamo en la misma celda que la declaración de importación, se ignora.Intente con un código simple como el siguiente:
Debe establecer el tamaño de la figura antes de trazar.
fuente
atplotlib.pyplot.figure
, que los demás no dicen tan claramente. Sigo intentando cosas comomatplotlib.figure
ymatplotlib.figure.Figure
plt.figure(figsize=(1,1))
Es el movimiento crucial. Gracias.En caso de que esté buscando una manera de cambiar el tamaño de la figura en Pandas , puede hacer, por ejemplo:
donde
df
es un marco de datos de Pandas. O, para usar figuras o ejes existentesSi desea cambiar la configuración predeterminada, puede hacer lo siguiente:
fuente
El primer enlace en Google
'matplotlib figure size'
es AdjustingImageSize ( caché de Google de la página ).Aquí hay un script de prueba de la página anterior. Crea
test[1-3].png
archivos de diferentes tamaños de la misma imagen:Salida:
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ño.
fuente
fig = plt.figure() default_size = fig.get_size_inches() fig.set_size_inches( (default_size[0]*2, default_size[1]*2) )
Simplemente puede usar (de matplotlib.figure.Figure ):
A partir de Matplotlib 2.0.0, los cambios en su lienzo serán visibles de inmediato, según el valor predeterminado de la
forward
palabra clave .True
Si solo desea cambiar el ancho o la altura en lugar de ambos, puede usar
fig.set_figwidth(val)
ofig.set_figheight(val)
Estos también actualizarán inmediatamente su lienzo, pero solo en Matplotlib 2.2.0 y versiones posteriores.
Para versiones anteriores
Debe especificar
forward=True
explícitamente para actualizar en vivo su lienzo en versiones anteriores a las especificadas anteriormente. Tenga en cuenta que las funcionesset_figwidth
yset_figheight
no admiten elforward
parámetro en versiones anteriores a Matplotlib 1.5.0.fuente
También puedes usar:
fuente
Intenta comentar la
fig = ...
líneafuente
Esto funciona bien para mi:
Esto también podría ayudar: http://matplotlib.1069221.n5.nabble.com/Resizing-figure-windows-td11424.html
fuente
Para aumentar el tamaño de su figura N veces, debe insertar esto justo antes de su pl.show ():
También funciona bien con el cuaderno ipython.
fuente
Como Matplotlib no puede utilizar el sistema métrico de forma nativa, si desea especificar el tamaño de su figura en una unidad razonable de longitud, como centímetros, puede hacer lo siguiente (código de gns-ank ):
Entonces puedes usar:
fuente
Esto cambia el tamaño de la figura inmediatamente incluso después de que se haya dibujado la figura (al menos usando Qt4Agg / TkAgg, pero no MacOSX, con matplotlib 1.4.0):
fuente
Generalizando y simplificando la respuesta de psihodelia. Si desea cambiar el tamaño actual de la figura por un factor
sizefactor
Después de cambiar el tamaño actual, puede ocurrir que tenga que ajustar el diseño de la subtrama . Puede hacerlo en la GUI de la ventana de figura, o mediante el comando subplots_adjust
Por ejemplo,
fuente
Otra opción, usar la función rc () en matplotlib (la unidad es pulgadas)
fuente
Cambia directamente el tamaño de la figura usando
fuente
pyplot
no tiene ningún método nombradoset_figsize
.