Wie man verschiedene Subplotgrößen in Matplotlib erstellt

Jinku Hu 5 November 2020
  1. gridspec Methode
  2. gridspec_kw Methode
  3. subplot2grid-Methode
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.

Matplotlib Unterschiedliche Subplotgröße

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()

Matplotlib Unterschiedliche Subplot-Größe_gridspec_kw

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()

Matplotlib Unterschiedliche Subplotgröße_subplot2grid

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.

Autor: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

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

Verwandter Artikel - Matplotlib Subplot