¿Cómo agrandar los gráficos en línea en Jupyter Notebook? [duplicate]

5 minutos de lectura

avatar de usuario
cris

He hecho mis parcelas en línea en mi Ipython Notebook con “%matplotlib inline.”

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

ingrese la descripción de la imagen aquí

  • Para las figuras nacidas en el mar, puede usar los argumentos “height=” y “aspect=” en el enlace directo de la trama

    – El ribosoma

    2 de mayo a las 12:30


avatar de usuario
tacaswell

El tamaño predeterminado de la figura (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

  • En realidad, esto es mucho más útil como una estrategia de configurarlo y olvidarlo si todas las parcelas tienen un tamaño incorrecto.

    – José

    1 oct 2016 a las 19:27

  • Excelente. Luchó con el tamaño del gráfico de caja de pandas y esto lo arregló. Por alguna razón el figsize=(x,y) el argumento es ineficaz en jupyter. Sin embargo, modificando matplob.rcParamscomo sugieres, funciona perfectamente.

    – 0_0

    23 de noviembre de 2016 a las 19:55


  • Asegúrate de ejecutar esto después correr %matplotlib inline.

    – uut

    22 de noviembre de 2017 a las 7:32

  • @uut ¿no es este el valor predeterminado?

    – Verena Haunschmid

    27 de marzo de 2018 a las 5:57

  • @VerenaHaunschmid corriendo %matplotlib inline después de configurar rcParams parece sobrescribir el tamaño de la figura de nuevo a su valor predeterminado.

    – uut

    28 de marzo de 2018 a las 1:22

avatar de usuario
correcaminos66

si, juega con figuresize y dpi así (antes de llamar a su trama secundaria):

fig=plt.figure(figsize=(12,8), dpi= 100, facecolor="w", edgecolor="k")

Como señalaron @tacaswell y @Hagne, también puede cambiar los valores predeterminados si no es único:

plt.rcParams['figure.figsize'] = [12, 8]
plt.rcParams['figure.dpi'] = 100 # 200 e.g. is really fine, but slower

  • f, (ax1, ax2,ax3) = plt.subplots(1,3, sharex=’col’, sharey=’row’,figsize=(18, 16)) para este caso específico

    – rollo

    4 de julio de 2017 a las 5:28

  • No funciona. Cambiar figsize en mi caso solo cambia la relación de aspecto. El ancho de la figura total permanece fijo

    – Aleksejs Fomins

    3 de diciembre de 2018 a las 9:13

  • Eso es correcto para números demasiado grandes para caber en la página, entonces la escala se detiene. Todavía puede ser útil para cambiar la relación de aspecto como notó.

    – correcaminos66

    28 de febrero de 2019 a las 23:16

  • Aumentar los ppp a ‘200’ proporciona un resultado mucho mejor que simplemente cambiar el tamaño de la figura.

    – Adithya Bhat

    10 de febrero de 2020 a las 20:52

  • Sí, vea @Hagne a continuación.

    – correcaminos66

    10 de febrero de 2020 a las 23:35

avatar de usuario
tomcheney

he encontrado que %matplotlib notebook funciona mejor para mí que en línea con los cuadernos Jupyter.

Tenga en cuenta que es posible que deba reiniciar el kernel si estaba usando %matplotlib inline antes de.

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

  • Tal vez esto funcione en algunos casos, pero cuando probé esto en el mío, me dio una imagen en blanco con un marco de datos de pandas. df.plot(). tuve que volver a %matplotlib inline

    – Tsando

    29/09/2017 a las 11:00

  • @tsando He visto un problema en el que cambiar de %matplotlib inline a %matplotlib notebook sin reiniciar el núcleo da una salida en blanco. Cambiar de %matplotlib notebook a %matplotlib inline funciona bien.

    – tomcheney

    29 de septiembre de 2017 a las 13:58


  • Gracias @SlimCheney, confirmo que lo que dices es cierto: funciona si reinicias el kernel

    – Tsando

    29/09/2017 a las 16:10

  • Tenga en cuenta que el cuaderno %matplotlib ya no funciona con Jupyter Lab

    – Daniel Kats

    5 de abril de 2020 a las 17:07

  • tuve muchos problemas con %matplotlib widget hasta que lo seguí las instrucciones en el README (particularmente jupyter labextension install @jupyter-widgets/jupyterlab-manager).

    – Mateo D. Scholefield

    18 de noviembre de 2020 a las 12:54

Si solo desea que la imagen de su figura parezca más grande sin cambiar la apariencia 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

avatar de usuario
jared wilber

la pregunta es sobre matplotlibpero por el bien de cualquier usuario de R que termine 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)

avatar de usuario
farrellw

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]

avatar de usuario
Miau gato 2012

Es posible escalar la trama al ancho completo de la celda.

  1. Usar svg formato en lugar de mapa de bits cuando se trazan principalmente gráficos de líneas:
%config InlineBackend.figure_format="svg"
  1. Forzar la trama para que tenga un ancho del 100 % (pegar en una celda vacía):
%%html
<style>
.output_svg div{
  width: 100% !important;
  height: 100% !important;
}
</style>
  1. También es posible que desee cambiar la relación de aspecto u otros parámetros de acuerdo con otras respuestas para una mejor comprensión.

No está utilizando una API pública y puede dejar de funcionar algún día.
captura de pantalla de un diagrama matplotlib de ancho completo

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad