Come rendere inline la trama matplotlib del notebook IPython


Sto cercando di utilizzare il blocco appunti IPython su MacOS X con Python 2.7.2 e IPython 1.1.0.

Non riesco a visualizzare la grafica di matplotlib in linea.

import matplotlib
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline  

Ho anche provato %pylab inline e gli argomenti della riga di comando ipython --pylab=inline ma questo non fa differenza.

x = np.linspace(0, 3*np.pi, 500)
plt.plot(x, np.sin(x**2))
plt.title('A simple chirp')
plt.show()

Invece di grafica inline, ottengo questo:

<matplotlib.figure.Figure at 0x110b9c450>

E matplotlib.get_backend() mostra che ho il backend 'module://IPython.kernel.zmq.pylab.backend_inline' .


Answers



Ho usato %matplotlib inline nella prima cella del notebook e funziona. Penso che dovresti provare:

%matplotlib inline

import matplotlib
import numpy as np
import matplotlib.pyplot as plt

Puoi sempre avviare tutti i tuoi kernel IPython in modalità inline per impostazione predefinita, impostando le seguenti opzioni di configurazione nei tuoi file di configurazione:

c.IPKernelApp.matplotlib=<CaselessStrEnum>
  Default: None
  Choices: ['auto', 'gtk', 'gtk3', 'inline', 'nbagg', 'notebook', 'osx', 'qt', 'qt4', 'qt5', 'tk', 'wx']
  Configure matplotlib for interactive use with the default matplotlib backend.



Se la tua versione di matplotlib è superiore a 1.4, è anche possibile utilizzarla

IPython 3.xe versioni successive

%matplotlib notebook

import matplotlib.pyplot as plt

versioni precedenti

%matplotlib nbagg

import matplotlib.pyplot as plt

Entrambi attivano il backend nbagg , che abilita l'interattività.







Non sono sicuro del motivo per cui joaquin ha pubblicato la sua risposta come commento, ma è la risposta corretta:

avvia ipython con ipython notebook --pylab inline

Modifica: Ok, questo è ora deprecato come da commento qui sotto. Usa la magia% pylab.




Per rendere matplotlib in linea per impostazione predefinita in Jupyter (IPython 3):

  1. Modifica file ~/.ipython/profile_default/ipython_config.py

  2. Aggiungi riga c.InteractiveShellApp.matplotlib = 'inline'

Si noti che l'aggiunta di questa riga a ipython_notebook_config.py non funzionerebbe. Altrimenti funziona bene con Jupyter e IPython 3.1.0







Ho trovato una soluzione abbastanza soddisfacente. Ho installato Anaconda Python e questo ora funziona fuori dalla scatola per me.




Ho fatto l'installazione di anaconda ma Matplotlib non sta tramando

Inizia a tracciare quando ho fatto questo

import matplotlib
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline  



Su Ubuntu puoi rimuovere %matplotlib inline fintanto che hai plt.show() dopo la creazione del grafico.




È possibile simulare questo problema con un errore di sintassi, tuttavia, %matplotlib inline non risolverà il problema.

Innanzitutto un esempio del modo giusto per creare una trama. Tutto funziona come previsto con le importazioni e la magia fornite da eNord9 .

df_randNumbers1 = pd.DataFrame(np.random.randint(0,100,size=(100, 6)), columns=list('ABCDEF'))

df_randNumbers1.ix[:,["A","B"]].plot.kde()

Tuttavia, lasciando il () alla fine del tipo di trama si riceve un non ambiguo errore.

Codice Erronious:

df_randNumbers1.ix[:,["A","B"]].plot.kde

Errore di esempio:

<bound method FramePlotMethods.kde of <pandas.tools.plotting.FramePlotMethods object at 0x000001DDAF029588>>

Oltre a questo messaggio di una riga, non vi è traccia dello stack o altra ragione ovvia per pensare di aver commesso un errore di sintassi. La trama non viene stampata.