¿Cómo hacer que las parcelas en línea en Jupyter Notebook sean más grandes?

264

He realizado mis trazados en línea en mi cuaderno Ipython con " %matplotlib inline."

Ahora, aparece la trama. Sin embargo, es muy pequeño. ¿Hay alguna manera de hacer que parezca más grande usando la configuración del cuaderno o la configuración de la trama?

ingrese la descripción de la imagen aquí

Christopher
fuente

Respuestas:

172

Sí, juega figuresizeasí (antes de llamar a tu subtrama):

fig=plt.figure(figsize=(18, 16), dpi= 80, facecolor='w', edgecolor='k')
roadrunner66
fuente
28
f, (ax1, ax2, ax3) = subtotales plt. (1,3, sharex = 'col', sharey = 'fila', figsize = (18, 16)) para este caso específico
Rol
12
No funciona. Cambiar el tamaño del higo en mi caso solo cambia la relación de aspecto. El ancho de la cifra total permanece fijo
Aleksejs Fomins
Eso es correcto para números demasiado grandes para caber en la página, luego se detiene la escala. Todavía puede ser útil para cambiar la relación de aspecto como lo señaló.
roadrunner66
1
El aumento de ppp a '200' proporciona un resultado mucho mejor que simplemente cambiar el tamaño de la figura.
Adithya Bhat
Sí, vea @Hagne a continuación.
Roadrunner66
404

El tamaño de figura predeterminado (en pulgadas) está controlado por

matplotlib.rcParams['figure.figsize'] = [width, height]

Por ejemplo:

import matplotlib.pyplot as plt
plt.rcParams['figure.figsize'] = [10, 5]

crea una figura con 10 (ancho) x 5 (alto) pulgadas

Tacaswell
fuente
77
En realidad, esto es mucho más útil como una estrategia para establecerlo y olvidarlo si todas las parcelas tienen el tamaño incorrecto.
ijoseph
2
Excelente. Luchó con el tamaño de diagrama de caja de pandas y esto lo solucionó. Por alguna razón, el figsize=(x,y)argumento es ineficaz en jupyter. Sin embargo, la modificación matplob.rcParams, como sugiere, funciona perfectamente.
0_0
30
Asegúrese de ejecutar esto después de ejecutar %matplotlib inline.
CCU
@uut ¿no es este el valor predeterminado?
Verena Haunschmid
44
@VerenaHaunschmid ejecutándose %matplotlib inlinedespués de configurar rcParams parece sobrescribir el tamaño de la figura de nuevo al predeterminado.
CCU
63

He descubierto que %matplotlib notebookfunciona mejor para mí que en línea con los portátiles Jupyter.

Tenga en cuenta que es posible que deba reiniciar el núcleo si lo estaba usando %matplotlib inlineantes.

Actualización 2019: si está ejecutando Jupyter Lab, es posible que desee usar %matplotlib widget

SlimCheney
fuente
55
Tal vez esto funcione en algunos casos, pero cuando probé esto en la mía, me dio una imagen en blanco con un marco de datos de pandas df.plot(). Tuve que volver a%matplotlib inline
tsando
8
@tsando He visto un problema en el que cambiar de %matplotlib inlinea %matplotlib notebooksin reiniciar el núcleo da un resultado en blanco. Cambiar de %matplotlib notebooka %matplotlib inlinefunciona bien.
SlimCheney
44
Gracias @SlimCheney, que confirman lo que dice es cierto - que funciona si reinicia el kernel
tsando
1
Esto definitivamente supera el intento de configurar los componentes de panorámica y zoom a mano
beldaz
1
no funciona, incluso después de reiniciar el kernel. Da una salida en blanco
Kardi Teknomo 01 de
31

Si solo desea que la imagen de su figura parezca más grande sin cambiar el aspecto general de su figura, aumente la resolución de la figura. Cambiar el tamaño de la figura como se sugiere en la mayoría de las otras respuestas cambiará la apariencia ya que los tamaños de fuente no se escalan en consecuencia.

import matplotlib.pylab as plt
plt.rcParams['figure.dpi'] = 200
Hagne
fuente
19

La pregunta es sobre matplotlib, pero por el bien de los usuarios de R que terminan aquí dado el título independiente del idioma:

Si está utilizando un kernel R, simplemente use:

options(repr.plot.width=4, repr.plot.height=3)
Jared Wilber
fuente
11

Para ajustar el tamaño de una figura:

import matplotlib.pyplot as plt

fig=plt.figure(figsize=(15, 15))

Para cambiar la configuración predeterminada y, por lo tanto, todas sus parcelas:

import matplotlib.pyplot as plt

plt.rcParams['figure.figsize'] = [15, 15]
farrellw
fuente
1

Un pequeño pero importante detalle para ajustar el tamaño de la figura de forma puntual (como varios comentaristas anteriores informaron "esto no funciona para mí"):

Debe hacer plt.figure (figsize = (,)) ANTES de definir su trama real. Por ejemplo:

Esto debería dimensionar correctamente la trama de acuerdo con su tamaño de higo especificado:

values = [1,1,1,2,2,3]
_ = plt.figure(figsize=(10,6))
_ = plt.hist(values,bins=3)
plt.show()

Mientras que esto mostrará el gráfico con la configuración predeterminada, parece "ignorar" figsize:

values = [1,1,1,2,2,3]
_ = plt.hist(values,bins=3)
_ = plt.figure(figsize=(10,6))
plt.show()
RBueno
fuente