Könnte mir jemand erklären, was genau der Nutzen ist %matplotlib inline
?
inline
) überprüfen, indem Sie Folgendes eingeben : %matplotlib --list
.
Könnte mir jemand erklären, was genau der Nutzen ist %matplotlib inline
?
inline
) überprüfen, indem Sie Folgendes eingeben : %matplotlib --list
.
Antworten:
%matplotlib
ist eine magische Funktion in IPython. Ich zitiere hier die relevante Dokumentation, damit Sie sie der Einfachheit halber lesen können:
IPython verfügt über eine Reihe vordefinierter "magischer Funktionen", die Sie mit einer Befehlszeilen-Syntax aufrufen können. Es gibt zwei Arten von Magie: linienorientiert und zellorientiert. Der Zeilenmagie wird das Zeichen% vorangestellt und funktioniert ähnlich wie bei Befehlszeilenaufrufen des Betriebssystems: Sie erhalten als Argument den Rest der Zeile, in der Argumente ohne Klammern oder Anführungszeichen übergeben werden. Linienmagie kann Ergebnisse zurückgeben und auf der rechten Seite einer Aufgabe verwendet werden. Cell Magics wird ein doppeltes %% vorangestellt, und es handelt sich um Funktionen, die als Argument nicht nur den Rest der Zeile, sondern auch die Zeilen darunter in einem separaten Argument erhalten.
%matplotlib inline
Setzt das Backend von matplotlib auf das 'Inline'-Backend :
Mit diesem Backend wird die Ausgabe von Plotbefehlen in Frontends wie dem Jupyter-Notizbuch direkt unter der Codezelle, die sie erstellt hat, inline angezeigt. Die resultierenden Diagramme werden dann auch im Notizbuchdokument gespeichert.
Wenn Sie das Inline-Backend verwenden, werden Ihre Matplotlib-Diagramme neben dem Code in Ihr Notizbuch aufgenommen. Es kann sich auch lohnen, zu lesen, wie IPython Notebook Matplotlib Plot inline erstellt wird, um zu erfahren, wie es in Ihrem Code verwendet wird.
Wenn Sie auch Interaktivität wünschen, können Sie das nbagg-Backend mit %matplotlib notebook
(in IPython 3.x) verwenden, wie hier beschrieben .
Vorausgesetzt, Sie führen IPython aus, %matplotlib inline
werden Ihre Plotausgaben angezeigt und im Notizbuch gespeichert.
Laut Dokumentation
Um dies einzurichten,
matplotlib
müssen Sie das ausführen , bevor ein Plotten oder Importieren durchgeführt wird%matplotlib magic command
. Dadurch wird das notwendige Setup hinter den Kulissen ausgeführt, damit IPython Hand in Hand funktioniertmatplotlib
. Es werden jedoch keine Python-Importbefehle ausgeführt, dh dem Namespace werden keine Namen hinzugefügt.Ein besonders interessantes Backend von IPython ist das
inline
Backend. Dies ist nur für das Jupyter Notebook und die Jupyter QtConsole verfügbar. Es kann wie folgt aufgerufen werden:%matplotlib inline
Mit diesem Backend wird die Ausgabe von Plotbefehlen in Frontends wie dem Jupyter-Notizbuch direkt unter der Codezelle, die sie erstellt hat, inline angezeigt. Die resultierenden Diagramme werden dann auch im Notizbuchdokument gespeichert.
Wenn Sie Ihrem Jupyter-Notizbuch Diagramme hinzufügen möchten, %matplotlib inline
ist dies eine Standardlösung. Und es gibt andere magische Befehle, die matplotlib
in Jupyter interaktiv verwendet werden.
%matplotlib
: Mit jedem plt
Plot-Befehl wird jetzt ein Figurenfenster geöffnet, und es können weitere Befehle ausgeführt werden, um den Plot zu aktualisieren. Einige Änderungen werden nicht automatisch gezeichnet, um ein Update zu erzwingen, verwendenplt.draw()
%matplotlib notebook
: führt zu interaktiven Plots, die in das Notizbuch eingebettet sind. Sie können die Figur zoomen und ihre Größe ändern
%matplotlib inline
: Zeichnen Sie nur statische Bilder in das Notizbuch
Ab IPython 5.0 und Matplotlib 2.0 können Sie die Verwendung der spezifischen Magie und Verwendung von IPython vermeiden, die
matplotlib.pyplot.ion()/matplotlib.pyplot.ioff()
den Vorteil haben, auch außerhalb von IPython zu arbeiten.
inline
, werden Diagramme in äußeren Fenstern generiert, und Sie müssen display () verwenden, um sie im Notizbuch anzuzeigen.
Wenn Sie nicht wissen, was Backend ist, können Sie dies lesen: https://matplotlib.org/tutorials/introductory/usage.html#backends
Einige Benutzer verwenden matplotlib interaktiv über die Python-Shell und lassen beim Eingeben von Befehlen Plotfenster einblenden. Einige Leute betreiben Jupyter-Notizbücher und zeichnen Inline-Diagramme für eine schnelle Datenanalyse. Andere binden matplotlib in grafische Benutzeroberflächen wie wxpython oder pygtk ein, um umfangreiche Anwendungen zu erstellen. Einige Benutzer verwenden Matplotlib in Batch-Skripten, um Postscript-Bilder aus numerischen Simulationen zu generieren, und andere führen Webanwendungsserver aus, um Diagramme dynamisch bereitzustellen. Um all diese Anwendungsfälle zu unterstützen, kann matplotlib auf verschiedene Ausgaben abzielen. Jede dieser Funktionen wird als Backend bezeichnet. Das "Frontend" ist der benutzerbezogene Code, dh der Plotcode, während das "Backend" die ganze harte Arbeit hinter den Kulissen erledigt, um die Figur zu erstellen.
Wenn Sie also% matplotlib inline eingeben, wird das Inline-Backend aktiviert. Wie in den vorherigen Beiträgen besprochen:
Mit diesem Backend wird die Ausgabe von Plotbefehlen in Frontends wie dem Jupyter-Notizbuch direkt unter der Codezelle, die sie erstellt hat, inline angezeigt. Die resultierenden Diagramme werden dann auch im Notizbuchdokument gespeichert.
Es bedeutet nur, dass jedes Diagramm, das wir als Teil unseres Codes erstellen, im selben Notizbuch und nicht in einem separaten Fenster angezeigt wird, was passieren würde, wenn wir diese magische Anweisung nicht verwendet hätten.
TL; DR
%matplotlib inline
- Zeigt die Ausgabe inline anDer IPython-Kernel kann Diagramme durch Ausführen von Code anzeigen. Der IPython-Kernel arbeitet nahtlos mit der Matplotlib-Plotbibliothek zusammen, um diese Funktionalität bereitzustellen.
%matplotlib
ist ein magischer Befehl, der das notwendige Setup hinter den Kulissen ausführt, damit IPython Hand in Hand korrekt funktioniertmatplotlib
. Es werden keine Python-Importbefehle ausgeführt, dh dem Namespace werden keine Namen hinzugefügt.
%matplotlib
(nur für das Jupyter Notebook und die Jupyter QtConsole verfügbar)
%matplotlib inline
(gültige Werte 'GTK3Agg', 'GTK3Cairo', 'MacOSX', 'nbAgg', 'Qt4Agg', 'Qt4Cairo', 'Qt5Agg', 'Qt5Cairo', 'TkAgg', 'TkCairo', 'WebAgg', 'WX', 'WXAgg', 'WXCairo', 'agg', 'cairo', 'pdf', 'pgf', 'ps', 'svg', 'template'
)
%matplotlib gtk
Beispiel - GTK3Agg - Ein Agg-Rendering auf einer GTK 3.x-Zeichenfläche (erfordert PyGObject und Pycairo oder Cairocffi).
Weitere Details zu den interaktiven Backends von matplotlib: hier
Beginnen Sie mit
IPython 5.0
undmatplotlib 2.0
Sie können die Verwendung von IPythons spezifischer Magie vermeiden undmatplotlib.pyplot.ion()
/ verwendenmatplotlib.pyplot.ioff()
, die die Vorteile haben, auch außerhalb von IPython zu arbeiten.
Vorausgesetzt, Sie führen Jupyter Notebook aus, werden mit dem Inline-Befehl% matplotlib Ihre Plotausgaben im Notebook angezeigt und können ebenfalls gespeichert werden.
Es ist nicht zwingend erforderlich, dies zu schreiben. Es hat gut funktioniert für mich ohne ( %matplotlib
) magische Funktion. Ich verwende den Sypder-Compiler, der in Anaconda enthalten ist.