So erstellen Sie ein IPython-Notebook-Matplotlib-Plot inline

Lesezeit: 5 Minuten

Benutzer-Avatar
Ian Fiske

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

Ich kann Matplotlib-Grafiken nicht dazu bringen, inline angezeigt zu werden.

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

Ich habe es auch versucht %pylab inline 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('A simple chirp')
plt.show()

Anstelle von Inline-Grafiken bekomme ich Folgendes:

<matplotlib.figure.Figure at 0x110b9c450>

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

  • Ihr Code-Snippet sollte nicht produzieren <matplotlib.figure.Figure at 0x110b9c450> aber <matplotlib.text.Text at 0x94f9320> (weil Ihre letzte Zeile einen Titel druckt). Wie auch immer, Ihr Code (mit %matplotlib inline und plt.show()) funktioniert wie erwartet unter Windows

    – Joaquín

    16. Oktober 2013 um 17:56 Uhr

  • Danke für diese Vorschläge, aber sie funktionieren bei mir nicht. Ich bekomme immer noch die obige Ausgabe ohne Inline-Grafiken. Haben Sie Tipps zur Fehlerbehebung?

    – Ian Fiske

    16. Oktober 2013 um 19:31 Uhr

  • keine Ahnung. Gleiches Python, gleiches Ipython (und gleiches Backend), aber unter Windows, und es funktioniert …. Ich nehme an, Plot funktioniert für Sie, wenn es nicht inline ist, oder?

    – Joaquín

    16. Oktober 2013 um 19:46 Uhr

  • ohne das %matplotlib inline, bleibt der Kernel permanent beschäftigt und ich bekomme keine Ausgabe. Es muss getötet werden. Dies versucht, die zu verwenden MacOSX Backend, aber ich denke, es kann aus irgendeinem Grund nicht geöffnet werden. Wenn Sie kein ipython-Notebook verwenden, funktioniert das MacOSX-Backend für matplotlib einwandfrei.

    – Ian Fiske

    16. Oktober 2013 um 21:14 Uhr

  • Ich hatte ein identisches Symptom, aber es stellte sich heraus, dass ich eine 32-Bit-Version von Canopy unter OSX 10.8 installiert hatte. Eine Neuinstallation mit der 64-Bit-Version hat das Problem behoben.

    – Vicky T

    4. November 2013 um 23:16 Uhr

Benutzer-Avatar
eNord9

ich benutzte %matplotlib inline in der ersten Zelle des Notebooks und es funktioniert. Ich denke, Sie sollten versuchen:

%matplotlib inline

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

Sie können auch alle Ihre IPython-Kernel standardmäßig immer 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.

  • Ich würde dies als die richtige Antwort markieren. Die Alternative --pylab inline funktioniert, begrüßt Sie aber mit folgender Warnung: Das Starten aller Kernel im Pylab-Modus wird nicht empfohlen und wird in einer zukünftigen Version deaktiviert. Bitte verwenden Sie stattdessen die %matplotlib-Magie, um matplotlib zu aktivieren. pylab impliziert viele Importe, die verwirrende Nebenwirkungen haben und die Reproduzierbarkeit Ihrer Notebooks beeinträchtigen können.

    – mpawlow

    22. Juli 2014 um 19:04 Uhr


  • @eNord9 @mightwolf: Ich lerne die Verwendung von iPython (und Python-Programmierung anstelle von Matlab); was macht import matplotlib' do versus matplotlib importieren als [name]’? Verzeihen Sie den vereinfachten Kommentar

    – TSGM

    28. September 2014 um 9:56 Uhr

  • @eNord9 @mightwolf: und wie ist das im Vergleich zu „from matplotlib import mpl“.

    – TSGM

    28. September 2014 um 10:06 Uhr

  • @TSGM Die beste Erklärung, die ich für Ihre Frage gesehen habe, ist: effbot.org/zone/import-confusion.htm

    – mpawlow

    1. Oktober 2014 um 18:03 Uhr

  • Danke @eNord9. Ich habe gerade Ihre Befehle getestet, da es eine Weile her ist mit Updates und allem. Jetzt funktioniert alles gut auf Python 2.7.9 und IPython 3.1.0.

    – Ian Fiske

    20. Mai 2015 um 20:05 Uhr

Benutzer-Avatar
Löiten

Wenn Ihre Matplotlib-Version über 1.4 liegt, ist die Verwendung ebenfalls möglich

IPython 3.x und höher

%matplotlib notebook

import matplotlib.pyplot as plt

ältere Versionen

%matplotlib nbagg

import matplotlib.pyplot as plt

Beide aktivieren die nbagg-Backendwas Interaktivität ermöglicht.

Beispielplot mit dem nbagg-Backend

  • Damit scheint es nicht zu funktionieren %config InlineBackend.figure_format='retina'. Irgendeine Idee, wie man interaktive Retina-Figuren bekommt?

    – Orome

    1. April 2016 um 22:38 Uhr

  • Hmm … Ich habe nicht wirklich viel Erfahrung mit Retina-Figuren. Das einzige, worüber ich gestolpert bin, war dieser Link, aber es kann veraltet sein. Wenn sich mehr Leute darüber wundern, verlinke ich Ihre SO-Frage hier und wünsche Ihnen viel Glück mit den Antworten dort. Am besten

    – Löiten

    2. April 2016 um 8:44 Uhr

  • Diese Antwort wird unterschätzt. %matplotlib notebook bietet die bessere Visualisierung als %matplotlib inline.

    – Hallo

    15. Juni 2016 um 9:50 Uhr

  • verwenden %matplotlib notebook funktioniert nicht (zeigt irgendwie etwas, dann leer) auf jupyter notebook 4.1.1 / ubuntu 16.04 / chrome, %matplotlib inline zeigt Bilder, aber sie kommen nach dem Markdown-Text, nicht buchstäblich “inline”.

    – michael

    18. Dezember 2016 um 1:54 Uhr

  • Wenn du es versucht hast %matplotlib inline zuerst und dann zu wechseln %matplotlib notebook, erhalten Sie möglicherweise ein leeres Ergebnis. Starten Sie den Kernel neu und führen Sie ihn erneut aus.

    – Tschechisch

    18. Mai 2018 um 11:02 Uhr

Benutzer-Avatar
CodeFarmer

Strg + Eintreten

%matplotlib inline

Magische Linie 😀

Sehen: Plotten mit Matplotlib.

  • @BradleyKreider Noch nicht tot. Alternativ können Sie ipython repo auf github besuchen, in den Ordner „Beispiel“ gehen und das Notizbuch „Plotting with Matplotlib“ finden.

    – CodeFarmer

    30. Dezember 2015 um 0:32 Uhr

Benutzer-Avatar
Foobarbecue

Verwenden Sie die %pylab inline Zauberbefehl.

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

  1. Datei bearbeiten ~/.ipython/profile_default/ipython_config.py

  2. Zeile hinzufügen c.InteractiveShellApp.matplotlib = 'inline'

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

Benutzer-Avatar
Ulli Köhler

Ich muss foobarbecue zustimmen (ich habe nicht genug Recs, um einfach einen Kommentar unter seinen Beitrag einfügen zu können):

Es wird jetzt empfohlen, das Python-Notebook nicht mit dem Argument zu starten --pylabund laut Fernando Perez (Schöpfer von ipythonnb) %matplotlib inline sollte der anfängliche Notebook-Befehl sein.

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

Benutzer-Avatar
Ian Fiske

Ich habe eine Problemumgehung gefunden, die ziemlich zufriedenstellend ist. ich installierte Anakonda-Python und das funktioniert jetzt out of the box für mich.

1143480cookie-checkSo erstellen Sie ein IPython-Notebook-Matplotlib-Plot inline

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy