Ik probeer een IPython-notebook te gebruiken op MacOS X met Python 2.7.2 en IPython 1.1.0.
Ik krijg matplotlib-afbeeldingen niet inline weergegeven.
import matplotlib
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
Ik heb ook %pylab inline
en de ipython-opdrachtregelargumenten --pylab=inline
geprobeerd, maar dit maakt geen verschil.
x = np.linspace(0, 3*np.pi, 500)
plt.plot(x, np.sin(x**2))
plt.title('A simple chirp')
plt.show()
In plaats van inline afbeeldingen krijg ik dit:
<matplotlib.figure.Figure at 0x110b9c450>
En matplotlib.get_backend()
laat zien dat ik de 'module://IPython.kernel.zmq.pylab.backend_inline'
backend heb.
Antwoord 1, autoriteit 100%
Ik heb %matplotlib inline
gebruikt in de eerste cel van de notebook en het werkt. Ik denk dat je moet proberen:
%matplotlib inline
import matplotlib
import numpy as np
import matplotlib.pyplot as plt
Je kunt ook altijd al je IPython-kernels standaard in inline-modus starten door de volgende configuratie-opties in je configuratiebestanden in te stellen:
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.
Antwoord 2, autoriteit 19%
Als uw matplotlib-versie hoger is dan 1.4, is het ook mogelijk om
IPython 3.x en hoger
%matplotlib notebook
import matplotlib.pyplot as plt
oudere versies
%matplotlib nbagg
import matplotlib.pyplot as plt
Beide activeren de nbagg-backend, wat interactiviteit mogelijk maakt.
Antwoord 3, autoriteit 8%
Ctrl + Enter
%matplotlib inline
Magische lijn 😀
Zie: Plotten met Matplotlib.
Antwoord 4, autoriteit 2%
Gebruik het %pylab inline
magische commando.
Antwoord 5
Matplotlib standaard inline maken in Jupyter (IPython 3):
-
Bestand bewerken
~/.ipython/profile_default/ipython_config.py
-
Regel toevoegen
c.InteractiveShellApp.matplotlib = 'inline'
Houd er rekening mee dat het toevoegen van deze regel aan ipython_notebook_config.py
niet zou werken.
Anders werkt het goed met Jupyter en IPython 3.1.0
Antwoord 6
Ik ben het eens met foobarbecue (ik heb niet genoeg recs om gewoon een opmerking onder zijn bericht te kunnen plaatsen):
Het wordt nu aanbevolen om een ​​python-notebook niet te starten met het argument --pylab
, en volgens Fernando Perez (maker van ipythonnb) zou %matplotlib inline
de initiële notebookopdracht.
Antwoord 7
Ik heb een oplossing gevonden die redelijk bevredigend is. Ik heb Anaconda Python geïnstalleerd en dit werkt nu direct voor mij.
Antwoord 8
Ik heb de anaconda-installatie gedaan, maar matplotlib plot niet
Het begon te plotten toen ik dit deed
import matplotlib
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
Antwoord 9
Ik had hetzelfde probleem toen ik de plotcommando’s in afzonderlijke cellen in Jupyter uitvoerde:
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()
<Figure size 432x288 with 0 Axes> #this might be the problem
In [4]: ax = fig.add_subplot(1, 1, 1)
In [5]: ax.scatter(x, y)
Out[5]: <matplotlib.collections.PathCollection at 0x12341234> # CAN'T SEE ANY PLOT :(
In [6]: plt.show() # STILL CAN'T SEE IT :(
Het probleem is opgelost door de plotcommando’s in een enkele cel samen te voegen:
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]: <matplotlib.collections.PathCollection at 0x12341234>
# AND HERE APPEARS THE PLOT AS DESIRED :)
Antwoord 10
U kunt dit probleem simuleren met een syntaxisfout, maar %matplotlib inline
lost het probleem niet op.
Eerst een voorbeeld van de juiste manier om een ​​plot te maken. Alles werkt zoals verwacht met de invoer en magie die eNord9 heeft geleverd.
df_randNumbers1 = pd.DataFrame(np.random.randint(0,100,size=(100, 6)), columns=list('ABCDEF'))
df_randNumbers1.ix[:,["A","B"]].plot.kde()
Als u echter ()
aan het einde van het plottype laat staan, krijgt u een enigszins dubbelzinnige non-error.
Foutieve code:
df_randNumbers1.ix[:,["A","B"]].plot.kde
Voorbeeldfout:
<bound method FramePlotMethods.kde of <pandas.tools.plotting.FramePlotMethods object at 0x000001DDAF029588>>
Behalve dit bericht van één regel, is er geen stacktracering of andere voor de hand liggende reden om aan te nemen dat u een syntaxisfout heeft gemaakt. De plot wordt niet afgedrukt.