Wie man IPython Notizbuch matplotlib Diagramm inline bildet


Ich versuche, IPython-Notebook unter MacOS X mit Python 2.7.2 und IPython 1.1.0 zu verwenden.

Ich kann keine Matplotlib-Grafiken erhalten, die inline angezeigt werden.

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

Ich habe auch %pylab inline und die ipython Befehlszeile Argumente --pylab=inline aber das macht keinen Unterschied.

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

Anstelle von Inline-Grafiken bekomme ich das:

<matplotlib.figure.Figure at 0x110b9c450>

Und matplotlib.get_backend() zeigt, dass ich das 'module://IPython.kernel.zmq.pylab.backend_inline' Backend habe.



Answers


Ich habe %matplotlib inline in der ersten Zelle des Notebooks verwendet und es funktioniert. Ich denke, du solltest es versuchen:

%matplotlib inline

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

Sie können alle IPython-Kernel auch immer standardmäßig im Inline-Modus starten, indem Sie die folgenden Konfigurationsoptionen in Ihren Konfigurationsdateien festlegen:

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.



Wenn Ihre Matplotlib-Version über 1,4 liegt, können Sie auch

IPython 3.x und höher

%matplotlib notebook

import matplotlib.pyplot as plt

ältere Versionen

%matplotlib nbagg

import matplotlib.pyplot as plt

Beide aktivieren das nbagg-Backend , das Interaktivität ermöglicht.







Ich bin mir nicht sicher, warum Joaquin seine Antwort als Kommentar gepostet hat, aber es ist die richtige Antwort:

starte ipython mit ipython notebook --pylab inline

Edit: Ok, das ist jetzt wie unten kommentiert. Verwende die% Pylab-Magie.




Um matplotlib standardmäßig in Jupyter (IPython 3) inline zu machen:

  1. Bearbeiten Sie die Datei ~/.ipython/profile_default/ipython_config.py

  2. Zeile c.InteractiveShellApp.matplotlib = 'inline'

Bitte beachten Sie, dass das Hinzufügen dieser Zeile zu ipython_notebook_config.py nicht funktionieren würde. Ansonsten funktioniert es gut mit Jupyter und IPython 3.1.0







Ich habe einen Workaround gefunden, der sehr zufriedenstellend ist. Ich habe Anaconda Python installiert und das funktioniert jetzt für mich.




Ich habe die Anaconda installiert, aber matplotlib ist nicht plotten

Es beginnt zu zeichnen, als ich das tat

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



Auf Ubuntu können Sie %matplotlib inline entfernen, solange Sie plt.show() nach der Erstellung des Graphen haben.




Sie können dieses Problem mit einem Syntaxfehler simulieren. %matplotlib inline das Problem jedoch nicht.

Zuerst ein Beispiel für den richtigen Weg zum Erstellen einer Handlung. Alles funktioniert wie erwartet mit den Importen und der Magie, die eNord9 lieferte.

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

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

Wenn Sie jedoch das () vom Ende des Plottyps weglassen, erhalten Sie einen etwas mehrdeutigen Nicht-Fehler.

Fehlerhafter Code:

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

Beispielfehler:

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

Abgesehen von dieser einzeiligen Nachricht gibt es keine Stack-Trace oder andere offensichtliche Gründe, anzunehmen, dass Sie einen Syntaxfehler gemacht haben. Der Plot wird nicht gedruckt.