en el cuaderno Ipython / Jupyter, Pandas no muestra el gráfico que intento trazar

104

Estoy tratando de trazar algunos datos usando pandas en Ipython Notebook, y aunque me da el objeto, en realidad no traza el gráfico en sí. Entonces se ve así:

In [7]:

pledge.Amount.plot()

Out[7]:

<matplotlib.axes.AxesSubplot at 0x9397c6c>

El gráfico debería seguir después de eso, pero simplemente no aparece. He importado matplotlib, así que ese no es el problema. ¿Hay algún otro módulo que deba importar?

Chrisfs
fuente
Pude trazar cosas hace un par de días, mientras seguía un video, pero ahora parece que no puedo trazar nada. y parece que estoy haciendo lo mismo que la documentación. pandas.pydata.org/pandas-docs/stable/visualization.html Entonces me imagino que algo en mi sistema está mal o un módulo no se importa
chrisfs
@chrisfs hay una respuesta correcta más reciente. El que seleccionó hace unos años ahora es incorrecto. ¿Considerará cambiar su respuesta aceptada? Gracias.
tumultous_rooster

Respuestas:

177

Tenga en cuenta que --pylab está obsoleto y se ha eliminado de las compilaciones más recientes de IPython. La forma recomendada de habilitar el trazado en línea en IPython Notebook ahora es ejecutar:

%matplotlib inline
import matplotlib.pyplot as plt

Consulte esta publicación de la lista de correo ipython-dev para obtener más detalles.

Tal Yarkoni
fuente
2
Muy bien. Después de usar %matplotlib inlinemis intentos de trazar, resultó en una imagen visible en línea, agradable. De hecho, la importación no es necesaria si la trama es un método de un objeto ya existente como en OP.
Jan Vlcinsky
2
Esta es la nueva respuesta correcta. Más información en esta publicación de blog .
Scott Lowrey
@Tal Yarkoni Agregué la primera línea de su respuesta para que funcionara. gracias ~~!
verystrongjoe
También se aplica a los pandas en el cuaderno Jupyter.
datalifenyc
En aras de la integridad, %matplotlib nbagges útil en estos días obtener una versión más interactiva.
Frederick Nord
50

Editar: Pylab ha quedado obsoleto, consulte la respuesta aceptada actual

Ok, parece que la respuesta es iniciar el cuaderno ipython con --pylab = inline. así que ipython notebook --pylab = inline Esto hace que haga lo que vi antes y lo que quería que hiciera. Perdón por la vaga pregunta original.

Chrisfs
fuente
26
Sí, eso es lo que necesitas. También puede ejecutar %pylab inlinedentro de un cuaderno para habilitar el modo pylab.
Thomas K
3
tenga en cuenta que no tiene que estar en modo en línea para que los pandas funcionen. Estoy felizmente usando solo ipython notebook --pylabcon pandas para tener la trama en una ventana adicional, si eso es lo que alguien quiere.
K.-Michael Aye
26

Con tu import matplotlib.pyplot as pltsolo agrega

plt.show()

y mostrará todos los gráficos almacenados.

eumiro
fuente
1
ok eso ayuda. Pensé que Ipython haría trazados en línea automáticamente. La documentación para pandas tampoco muestra tener que hacer plt.show () pandas.pydata.org/pandas-docs/stable/visualization.html
chrisfs
4

simple después de importar el matplotlib, ha ejecutado una magia si ha iniciado el ipython así

ipython notebook 

%matplotlib inline 

ejecuta este comando todo se mostrará perfectamente

Ankanna
fuente
1

inicie ipython con ipython notebook --pylab inline, luego el gráfico se mostrará en línea.

lechón
fuente
Sí, esa fue la primera respuesta a esta pregunta, pero ahora también parece estar en desuso.
chrisfs
-2
import matplotlib as plt
%matplotlib as inline
Trilochan Yadav
fuente
-5

Todo lo que necesita hacer es importar matplotlib.

import matplotlib.pyplot as plt 
la mente curiosa
fuente
I have imported matplotlib
WoodChopper
hmmm eso es raro. ¿Que usas? Yo uso iPython Notebook. mi código a continuación. data.plot (kind = 'barh', stacked = True)
la mente curiosa
Esta respuesta es una repetición de la respuesta aceptada anterior.
chrisfs