945 Stimmen

Wie man IPython-Notizbuch-Matplotlib-Plot inline macht

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

Ich kann die matplotlib-Grafiken nicht inline anzeigen lassen.

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

Ich habe auch %pylab inline ausprobiert und die IPython Befehlszeilenargumente --pylab=inline, aber das macht keinen Unterschied.

x = np.linspace(0, 3*np.pi, 500)
plt.plot(x, np.sin(x**2))
plt.title('Ein einfacher Chirp')
plt.show()

Statt Inline-Grafiken erhalte ich das:

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

12voto

thescoop Punkte 496

Ich muss foobarbecue zustimmen (ich habe nicht genug Empfehlungen, um einfach einen Kommentar unter seinem Beitrag einzufügen):

Es wird jetzt empfohlen, dass das Python-Notebook nicht mit dem Argument --pylab gestartet wird, und laut Fernando Perez (Schöpfer von ipythonnb) sollte %matplotlib inline der erste Befehl im Notebook sein.

Siehe hier: http://nbviewer.ipython.org/github/ipython/ipython/blob/1.x/examples/notebooks/Part%203%20-%20Plotting%20with%20Matplotlib.ipynb

9voto

Ian Fiske Punkte 10162

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

7voto

Raymond Punkte 79

Ich habe die Anaconda-Installation durchgeführt, aber Matplotlib zeichnet nicht.

Es beginnt zu plotten, wenn ich dies gemacht habe

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

6voto

krubo Punkte 4881

Ich hatte das gleiche Problem, als ich die Plot-Befehle in separaten Zellen in Jupyter ausgeführt habe:

In [1]:  %matplotlib inline
         import matplotlib
         import matplotlib.pyplot as plt
         import numpy as np
In [2]:  x = np.array([1, 3, 4])
         y = np.array([1, 5, 3])
In [3]:  fig = plt.figure()

Das Problem wurde gelöst, indem die Plot-Befehle in einer einzelnen Zelle zusammengeführt wurden:

In [1]:  %matplotlib inline
         import matplotlib
         import matplotlib.pyplot as plt
         import numpy as np
In [2]:  x = np.array([1, 3, 4])
         y = np.array([1, 5, 3])
In [3]:  fig = plt.figure()
         ax = fig.add_subplot(1, 1, 1)
         ax.scatter(x, y)
Out[3]:  
         # UND HIER ERSCHEINT DER PLOT WIE GEWÜNSCHT :)

3voto

Blake M Punkte 161

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

Zunächst ein Beispiel für die richtige Art, einen Plot zu erstellen. Alles funktioniert wie erwartet mit den Imports und dem Magic, den eNord9 geliefert hat.

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 die () am Ende des Plot-Typs weglassen, erhalten Sie eine eher vage Nichtfehlermeldung.

Fehlerhafter Code:

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

Beispiel Fehlermeldung:

>

Abgesehen von dieser einen Zeilenmeldung gibt es keinen Stack-Trace oder keinen anderen offensichtlichen Grund zu denken, dass Sie einen Syntaxfehler gemacht haben. Der Plot wird nicht gedruckt.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X