Was ist ein gutes Standard-Backend für Matplotlib?

Was ist ein gutes Standard-Backend für Matplotlib?

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 Aggkeine TkAggAbhängigkeiten über die Standardbibliothek von Python hinaus.

Ich hatte einige Probleme mit TkAggund Multithreading. Wenn Sie also nur in Dateien speichern müssen (und nicht plt.show()), würde ich Aggstattdessen die Verwendung von empfehlen (ersetzen Sie es einfach dort, wo TkAggunten 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')  

Bildbeschreibung hier eingeben

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.

verwandte Informationen