Ich habe mich entschieden, ein benutzerdefiniertes einzurichten matplotlibrc
, und muss daher ein Backend für auswählen matplotlib
. Welches ist das beste, damit keine weiteren zusätzlichen Pakete installiert werden müssen?
Ich verwende eher matplotlib
über ipython --pylab
, daher möchte ich interaktive, fensterbasierte Diagramme (wenn nicht, kann ich zu wechseln Agg
).
Ich habe es versucht WXAgg
, aber dazu ist (sinnvollerweise) WX erforderlich.
Antwort1
Beide erfordern Agg
keine TkAgg
Abhängigkeiten über die Standardbibliothek von Python hinaus.
Ich hatte einige Probleme mit TkAgg
und Multithreading. Wenn Sie also nur in Dateien speichern müssen (und nicht plt.show()
), würde ich Agg
stattdessen die Verwendung von empfehlen (ersetzen Sie es einfach dort, wo TkAgg
unten angezeigt wird).
Fügen Sie Ihrer entweder die folgende Zeile hinzu ~/.config/matplotlib/matplotlibrc
:
backend: TkAgg
Oder fügen Sie Ihrer Python-Datei die folgenden Zeilen hinzu:
import matplotlib
matplotlib.use('TkAgg')
import matplotlib.pyplot as plt
Antwort2
import matplotlib
matplotlib.use('Qt5Agg')
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0,1,100)
y = np.sin(x)
plt.plot(x,y)
plt.show()
PyQt5 ist meines Wissens das beste Backend für Matplotlib. Es ermöglicht alle Änderungen auch nach dem Ausführen des Programms. Um es zu verwenden,
import matplotlib
matplotlib.use('Qt5Agg')
Stellen Sie dies an die erste Stelle, bevor Sie anrufen
import matplotlib.pyplot as plt
NB: Sie müssen PyQt5 installieren
Führen Sie für die Installation über Pip den Befehl aus
pip install PyQt5
Antwort3
Ich bevorzuge Inline-Plots mit Matplotlib gegenüber Plots in einem separaten Fenster, da ich so leichter sehen kann, was ich tue, wenn ich den Python-Code fein abstimme.
Python IDE für Wissenschaftler (spion) kann Inline-Plots durchführen. Um diese Funktion auszuprobieren, öffnen Sie das Terminal und geben Sie ein:
sudo apt install python2.7 python-matplotlib spyder ipython # Python 2.x in Ubuntu 18.04 and earlier
oder
sudo apt install python3 python3-matplotlib spyder3 ipython3 # Python 3.x
Kopieren/fügen Sie nach der IPython-Eingabeaufforderung in der IPython-Konsole den folgenden Code ein und drücken Sie die EnterTaste, um ihn auszuführen.
import matplotlib.pyplot as plt
x, y = [-1, 12], [1, 4]
plt.plot(x, y, marker = 'o')
Der Atom-Texteditor mit dem installierten Hydrogen-Paket für Atom kann auch Inline-Plots erstellen. Ich finde die Atom-Schnittstelle komplizierter zu konfigurieren als Spyder, bei dem Inline-Plots mit Matplotlib sofort einsatzbereit sind. Ich habe mit Inline-Plots in Atom begonnen, weil ich Atom auch zum Erstellen von Inline-Plots mit anderen Programmiersprachen verwenden wollte.