Matplotlib - Objektorientierte Schnittstelle

Während es einfach ist, schnell Diagramme mit dem zu erstellen matplotlib.pyplotModul wird die Verwendung eines objektorientierten Ansatzes empfohlen, da dies eine bessere Kontrolle und Anpassung Ihrer Diagramme ermöglicht. Die meisten Funktionen sind auch in der verfügbar matplotlib.axes.Axes Klasse.

Die Hauptidee hinter der Verwendung der formaleren objektorientierten Methode besteht darin, Figurenobjekte zu erstellen und dann einfach Methoden oder Attribute von diesem Objekt aufzurufen. Dieser Ansatz hilft beim Umgang mit einer Leinwand mit mehreren Plots.

In der objektorientierten Benutzeroberfläche wird Pyplot nur für einige Funktionen wie die Erstellung von Figuren verwendet, und der Benutzer erstellt explizit die Objekte für Figuren und Achsen und verfolgt diese. Auf dieser Ebene verwendet der Benutzer Pyplot, um Figuren zu erstellen, und durch diese Figuren können ein oder mehrere Achsenobjekte erstellt werden. Diese Achsenobjekte werden dann für die meisten Plotaktionen verwendet.

Zunächst erstellen wir eine Figureninstanz, die eine leere Leinwand bereitstellt.

fig = plt.figure()

Fügen Sie nun der Figur Achsen hinzu. Dasadd_axes()Methode erfordert ein Listenobjekt von 4 Elementen, die links, unten, Breite und Höhe der Figur entsprechen. Jede Zahl muss zwischen 0 und 1 liegen -

ax=fig.add_axes([0,0,1,1])

Beschriftungen für x- und y-Achse sowie Titel festlegen -

ax.set_title("sine wave")
ax.set_xlabel('angle')
ax.set_ylabel('sine')

Rufen Sie die plot () -Methode des Achsenobjekts auf.

ax.plot(x,y)

Wenn Sie ein Jupyter-Notizbuch verwenden, muss die Inline-Direktive% matplotlib ausgegeben werden. Die otherwistshow () -Funktion des Pyplot-Moduls zeigt den Plot an.

Ziehen Sie in Betracht, den folgenden Code auszuführen:

from matplotlib import pyplot as plt
import numpy as np
import math
x = np.arange(0, math.pi*2, 0.05)
y = np.sin(x)
fig = plt.figure()
ax = fig.add_axes([0,0,1,1])
ax.plot(x,y)
ax.set_title("sine wave")
ax.set_xlabel('angle')
ax.set_ylabel('sine')
plt.show()

Ausgabe

Die obige Codezeile generiert die folgende Ausgabe:

Der gleiche Code beim Ausführen in Jupyter Notebook zeigt die Ausgabe wie unten gezeigt -