Matplotlib Mehrere Diagramme
Wir können die folgenden Methoden in pyplotsubplot()undsubplots()verwenden, um mehrere Subplots zu zeichnen.
subplot()Die Methode erfordert die Angabe einer Position beim Plotten,subplots()Die Methode kann mehrere auf einmal erzeugen; beim Aufruf müssen Sie nur das 'ax' des erzeugten Objekts aufrufen.
subplot
subplot(nrows, ncols, index, **kwargs) subplot(pos, **kwargs) subplot(**kwargs) subplot(ax)
Die obigen Funktionen unterteilen den gesamten Plotbereich in nrows Zeilen und ncols Spalten und nummerieren dann jeden Unterbereich von links nach rechts und von oben nach unten.1...NDer obere linke Unterbereich ist mit 1 nummeriert, der untere rechte Bereich ist mit N nummeriert, und die Nummerierung kann durch dieindexParameter.
Setze numRows = 1, numCols = 2, das heißt, zeichne das Diagramm als 1x2-Bildbereich, die entsprechenden Koordinaten sind:
(1, 1), (1, 2)
plotNum = 1, repräsentiert die Koordinate (1, 1), das heißt das Subplot in der ersten Zeile und ersten Spalte.
plotNum = 2, repräsentiert die Koordinate (1, 2), das heißt das Subplot in der ersten Zeile und zweiten Spalte.
Beispiel
import numpy as np
#plot 1:
xpoints = np.array([0, 6])
ypoints = np.array([0, 100])
plt.subplot(1, 2, 1)
plt.plot(xpoints,ypoints)
plt.title("plot 1")
#plot 2:
x = np.array([1, 2, 3, 4])
y = np.array([1, 4, 9, 16])
plt.subplot(1, 2, 2)
plt.plot(x,y)
plt.title("plot 2")
plt.suptitle("EXAMPLE subplot Test")
plt.show()
Das angezeigte Ergebnis sieht wie folgt aus:

Setze numRows = 2, numCols = 2, das heißt, zeichne das Diagramm als 2x2-Bildbereich, die entsprechenden Koordinaten sind:
(1, 1), (1, 2) (2, 1), (2, 2)
plotNum = 1, repräsentiert die Koordinate (1, 1), das heißt das Subplot in der ersten Zeile und ersten Spalte.
plotNum = 2, repräsentiert die Koordinate (1, 2), das heißt das Subplot in der ersten Zeile und zweiten Spalte.
plotNum = 3, repräsentiert die Koordinate (2, 1), das heißt das Subplot in der zweiten Zeile und ersten Spalte.
plotNum = 4, repräsentiert die Koordinate (2, 2), das heißt das Subplot in der zweiten Zeile und zweiten Spalte.
Beispiel
import numpy as np
#plot 1:
x = np.array([0, 6])
y = np.array([0, 100])
plt.subplot(2, 2, 1)
plt.plot(x,y)
plt.title("plot 1")
#plot 2:
x = np.array([1, 2, 3, 4])
y = np.array([1, 4, 9, 16])
plt.subplot(2, 2, 2)
plt.plot(x,y)
plt.title("plot 2")
#plot 3:
x = np.array([1, 2, 3, 4])
y = np.array([3, 5, 7, 9])
plt.subplot(2, 2, 3)
plt.plot(x,y)
plt.title("Diagramm 3")
#Diagramm 4:
x = np.array([1, 2, 3, 4])
y = np.array([4, 5, 6, 7])
plt.subplot(2, 2, 4)
plt.plot(x,y)
plt.title("Diagramm 4")
plt.suptitle("EXAMPLE subplot Test")
plt.show()
Das angezeigte Ergebnis sieht wie folgt aus:

subplots()
Die Syntax der Methode subplots() lautet wie folgt:
matplotlib.pyplot.subplots(nrows=1, ncols=1, *, sharex=False, sharey=False, squeeze=True, subplot_kw=None, gridspec_kw=None, **fig_kw)Parameter description:
- nrows: Standard ist 1, legt die Anzahl der Zeilen des Diagramms fest.
- ncols: Standard ist 1, legt die Anzahl der Spalten des Diagramms fest.
- sharex、sharey: Legt fest, ob die x- und y-Achsen Attribute teilen, Standard ist false, kann auf 'none', 'all', 'row' oder 'col' gesetzt werden. False oder none bedeutet, dass die x-Achse oder y-Achse jedes Subplots unabhängig ist; True oder 'all' bedeutet, dass alle Subplots die x-Achse oder y-Achse teilen; 'row' legt fest, dass jede Zeile von Subplots eine x-Achse oder y-Achse teilt; 'col' legt fest, dass jede Spalte von Subplots eine x-Achse oder y-Achse teilt.
- squeeze: Boolescher Wert, Standard ist True, gibt an, dass zusätzliche Dimensionen aus dem zurückgegebenen Axes-Objekt herausgedrückt werden. Für N*1- oder 1*N-Subplots wird ein 1-dimensionales Array zurückgegeben; für N*M, N>1 und M>1, wird ein 2-dimensionales Array zurückgegeben. Wenn auf False gesetzt, wird kein Squeezing durchgeführt, und es wird ein 2-dimensionales Array von Axes-Instanzen zurückgegeben, selbst wenn es letztlich 1x1 ist.
- subplot_kw: Optional, Typ Dictionary. Übergeben Sie die Schlüsselwörter des Wörterbuchs an add_subplot(), um jeden Subplot zu erstellen.
- gridspec_kw: Optional, Typ Dictionary. Übergeben Sie die Schlüsselwörter des Wörterbuchs an den GridSpec-Konstruktor, um Subplots zu erstellen, die in einem Raster platziert sind.
- **fig_kw: Übergeben Sie detaillierte Schlüsselwortargumente an die Funktion figure().
Beispiel
import numpy as np
# Einige Testdaten erstellen -- Abbildung 1
x = np.linspace(0, 2*np.pi, 400)
y = np.sin(x**2)
# Eine Abbildung und ein Subplot erstellen -- Abbildung 2
fig, ax = plt.subplots()
ax.plot(x, y)
ax.set_title('Einfacher Plot')
# Zwei Subplots erstellen -- Abbildung 3
f, (ax1, ax2) = plt.subplots(1, 2, sharey=True)
ax1.plot(x, y)
ax1.set_title('Gemeinsame Y-Achse')
ax2.scatter(x, y)
# Vier Subplots erstellen -- Abbildung 4
fig, axs = plt.subplots(2, 2, subplot_kw=dict(projection="polar"))
axs[0, 0].plot(x, y)
axs[1, 1].scatter(x, y)
# x-Achse teilen
plt.subplots(2, 2, sharex='col')
# y-Achse teilen
plt.subplots(2, 2, sharey='row')
# x-Achse und y-Achse teilen
plt.subplots(2, 2, sharex='all', sharey='all')
# Dies teilt auch x-Achse und y-Achse
plt.subplots(2, 2, sharex=True, sharey=True)
# Eine Figur mit Bezeichner 10 erstellen, sie löschen, falls sie bereits existiert
fig, ax = plt.subplots(num=10, clear=True)
plt.show()
Einige der Ergebnisse der Diagrammanzeige sind wie folgt:
Abbildung 1

Abbildung 2

Abbildung 3

Abbildung 4
