Wie man verschiedene Subplotgrößen in Matplotlib erstellt
Wir könnten gridspec_kw
, gridspec
und subplot2grid
verwenden, um verschiedene Verhältnisse von Subplots zu spezifizieren, um Subplots unterschiedlicher Größe zu erstellen.
gridspec
Methode
import matplotlib.pyplot as plt
from matplotlib import gridspec
fig = plt.figure()
spec = gridspec.GridSpec(ncols=2, nrows=1, width_ratios=[2, 1])
ax0 = fig.add_subplot(spec[0])
ax0.plot(range(5), range(5, 10))
ax1 = fig.add_subplot(spec[1])
ax1.plot(range(5), range(5, 10))
plt.show()
GridSpec
aus dem Modul gridspec
spezifiziert die Geometrie des Subplots-Grids. Wir könnten die Anzahl der Zeilen, Spalten und Layout-Parameter wie Breite und Höhenverhältnis festlegen.
spec = gridspec.GridSpec(ncols=2, nrows=1, width_ratios=[2, 1])
Es gibt an, dass die Abbildung zwei Spalten und eine Zeile hat und das Breitenverhältnis 2:1
ist.
ax0 = fig.add_subplot(spec[0])
Das Objekt ax0
nimmt den Platz der Position 0
in der Geometrie ein, wie oben definiert, oder Sie könnten spec[0, 0]
verwenden, um es deutlicher zu machen.
gridspec_kw
Methode
import matplotlib.pyplot as plt
fig, ax = plt.subplots(
2, 2, gridspec_kw={"width_ratios": [2, 1], "height_ratios": [1, 2]}
)
ax[0][0].plot(range(5), range(5, 10))
ax[0][1].plot(range(5), range(10, 5, -1))
ax[1][0].plot(range(5), range(5, 10))
ax[1][1].plot(range(5), range(10, 5, -1))
plt.show()
gridspec_kw
ist das Dictionary mit Schlüsselwörtern für den GridSpec
-Konstruktor, um den Gird der Subplots zu spezifizieren.
Das Breitenverhältnis wird mit 2:1
angegeben, und das Höhenverhältnis wird auf 1:2
gesetzt.
subplot2grid
-Methode
subplot2grid
lassen Subplots mehrere Zellen in der 0-basierten Gitterindizierung aufnehmen.
def subplot2grid(shape,
loc,
rowspan=1,
colspan=1,
fig=None,
**kwargs):
shape
ist die Form des Gitters und hat die Folge von 2 ganzen Zahlen, deren erstes Element die Anzahl der Zeilen und das zweite die Anzahl der Spalten ist.
loc
ist der Ort, an dem die axis
im Gitter platziert wird. Es ist auch die Folge von 2 ganzen Zahlen, deren erster Eintrag die Zeilenzahl und deren zweiter Eintrag die Spaltenzahl ist.
rowspan
und colspan
ist die Anzahl der Zeilen oder Spalten, die die Achse nach rechts (bei rowspan
) oder nach unten (bei colspan
) spannen soll.
Beispiel für eine Arbeitscodierung:
import matplotlib.pyplot as plt
fig = plt.figure()
ax0 = plt.subplot2grid((1, 5), (0, 0), colspan=3)
ax1 = plt.subplot2grid((1, 5), (0, 3), colspan=2)
ax0.plot(range(5), range(5, 10))
ax1.plot(range(5), range(10, 5, -1))
plt.show()
ax0 = plt.subplot2grid((1, 5), (0, 0), colspan=3)
ax1 = plt.subplot2grid((1, 5), (0, 3), colspan=2)
Das Gitter hat die Form von (1, 5)
, das eine Zeile und fünf Spalten hat.
ax0
befindet sich bei (0, 0)
Zelle und nimmt 3 Spalten ein, und ax1
befindet sich bei (0, 3)
und nimmt die anderen beiden Spalten ein.
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn Facebook