no notebook Ipython / Jupyter, o Pandas não está exibindo o gráfico que tento plotar

104

Estou tentando plotar alguns dados usando pandas no Ipython Notebook e, embora ele me dê o objeto, na verdade não plota o gráfico em si. Então fica assim:

In [7]:

pledge.Amount.plot()

Out[7]:

<matplotlib.axes.AxesSubplot at 0x9397c6c>

O gráfico deve vir depois disso, mas simplesmente não aparece. Eu importei matplotlib, então esse não é o problema. Existe algum outro módulo que preciso importar?

chrisfs
fonte
Consegui traçar coisas alguns dias atrás, enquanto seguia um vídeo, mas agora não consigo traçar nada. e parece que estou fazendo a mesma coisa que a documentação. pandas.pydata.org/pandas-docs/stable/visualization.html Então, acho que algo com meu sistema está errado ou um módulo não foi importado
chrisfs
@chrisfs existe uma resposta correta mais recente. O que você selecionou há alguns anos agora está incorreto. Você consideraria mudar sua resposta aceita? Obrigado.
tumultous_rooster

Respostas:

177

Observe que --pylab está obsoleto e foi removido das compilações mais recentes do IPython. A maneira recomendada de habilitar a plotagem em linha no Notebook IPython agora é executar:

%matplotlib inline
import matplotlib.pyplot as plt

Veja esta postagem da lista de discussão ipython-dev para mais detalhes.

Tal Yarkoni
fonte
2
Muito bom. Depois de usar %matplotlib inlineminhas tentativas de plotagem resultou em imagem visível embutida, bom. Na verdade, a importação não é necessária se o plot for o método de um objeto já existente como no OP.
Jan Vlcinsky
2
Esta é a nova resposta correta. Mais informações nesta postagem do blog .
Scott Lowrey
@Tal Yarkoni Eu adicionei a primeira linha de sua resposta para que funcionasse. obrigado ~~!
verystrongjoe
Também se aplica a pandas no caderno Jupyter.
datalifenyc
Para completar, %matplotlib nbaggé útil atualmente obter uma versão mais interativa.
Frederick Nord,
50

Edit: Pylab foi descontinuado por favor veja a resposta atual aceita

Ok, parece que a resposta é iniciar o notebook ipython com --pylab = inline. so ipython notebook --pylab = inline Isso faz com que ele faça o que eu vi antes e o que eu queria que ele fizesse. Desculpe pela vaga pergunta original.

chrisfs
fonte
26
Sim, é disso que você precisa. Você também pode executar %pylab inlinedentro de um notebook para habilitar o modo pylab.
Thomas K
3
note que ele não precisa estar no modo embutido para que os pandas funcionem. Fico feliz usando apenas ipython notebook --pylabpandas para ter o enredo em uma janela extra, se é o que alguém quer.
K.-Michael Aye
26

Com o seu import matplotlib.pyplot as pltapenas adicionar

plt.show()

e mostrará todos os gráficos armazenados.

eumiro
fonte
1
ok isso ajuda. Achei que Ipython faria plotagens embutidas automaticamente. A documentação para pandas também não mostra a necessidade de fazer plt.show () pandas.pydata.org/pandas-docs/stable/visualization.html
chrisfs
4

simples depois de importar o matplotlib você executou uma mágica se iniciou o ipython desta forma

ipython notebook 

%matplotlib inline 

execute este comando tudo será mostrado perfeitamente

Ankanna
fonte
1

inicie o ipython com ipython notebook --pylab inline, então o gráfico mostrará inline.

leitão
fonte
Sim, essa foi a primeira resposta a essa pergunta, mas também parece estar obsoleta agora.
chrisfs
-2
import matplotlib as plt
%matplotlib as inline
TrilochanYadav
fonte
-5

Tudo que você precisa fazer é importar matplotlib.

import matplotlib.pyplot as plt 
a mente curiosa
fonte
I have imported matplotlib
WoodChopper
hmmm isso é estranho. O que você usa? Eu uso o iPython Notebook. meu código abaixo. data.plot (kind = 'barh', stacked = True)
a mente curiosa
Esta resposta é uma repetição da resposta aceita acima.
chrisfs