Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Unterdiagramme | Diagrammanpassung
Ultimative Visualisierung mit Python

Swipe um das Menü anzuzeigen

book
Unterdiagramme

Die Funktion subplots() aus pyplot erfüllt genau diesen Zweck. Sie wurde bereits im ersten Abschnitt verwendet, um eine Zeichenfläche zu erstellen, und wird nun ausführlicher betrachtet.

Zeilen und Spalten

Die wichtigsten Argumente dieser Funktion sind nrows und ncolumns, die die Anzahl der Zeilen und Spalten im Subplot-Raster festlegen. Standardmäßig sind beide auf 1 gesetzt, sodass nur ein einzelnes Diagramm (Axes) erzeugt wird.

Die Funktion subplots() gibt ein Figure-Objekt und entweder ein einzelnes Axes-Objekt oder ein Array von Axes-Objekten zurück, abhängig von der Größe des Rasters.

12345
import matplotlib.pyplot as plt fig, axs = plt.subplots(2, 2) plt.show()
copy

Ein 2 mal 2 Subplot-Raster wurde erstellt.

Note
Hinweis

Da es mehrere Subplots gibt, gibt subplots ein Array von Axes-Objekten zurück, das üblicherweise in einer Variablen namens axs gespeichert wird (Singular ax steht für ein einzelnes Diagramm).

In diesem Fall ist axs ein zweidimensionales Array, daher werden sowohl ein Zeilen- als auch ein Spaltenindex benötigt, um auf ein bestimmtes Subplot zuzugreifen.

12345678910111213141516
import matplotlib.pyplot as plt import numpy as np data_linear = np.arange(1, 11) data_squared = data_linear ** 2 # Creating a 2x2 subplot grid fig, axs = plt.subplots(2, 2) # Creating a different plot for each Axes object axs[0, 0].plot(data_linear) axs[0, 1].plot(data_squared) axs[1, 0].scatter(data_linear, data_linear) axs[1, 1].scatter(data_linear, data_squared) plt.show()
copy

Die erste Zeile (Zeile 0) enthält zwei Liniendiagramme, und die zweite Zeile (Zeile 1) enthält zwei Streudiagramme.

Da jeder Plot auf einem separaten Subplot platziert ist, können plt.plot() oder plt.scatter() nicht direkt verwendet werden. Die geeignete Vorgehensweise ist, die jeweilige Methode auf jedem einzelnen Axes-Objekt aufzurufen.

Umwandlung in ein 1D-Array

Es ist ebenfalls möglich, die Methode .ravel() zu verwenden, um ein 2D-Axes-Array in ein 1D zusammenhängendes, flaches Array umzuwandeln:

12345678910111213141516171819
import matplotlib.pyplot as plt import numpy as np data_linear = np.arange(1, 11) data_squared = data_linear ** 2 # Creating a 2x2 subplot grid fig, axs = plt.subplots(2, 2) # Flattening axs to a 1D array for easier indexing axs = axs.ravel() # Creating a different plot for each Axes object axs[0].plot(data_linear) axs[1].plot(data_squared) axs[2].scatter(data_linear, data_linear) axs[3].scatter(data_linear, data_squared) plt.show()
copy

Mit einem 2x2-Array wandelt axs.ravel() dieses in ein 1D-Array mit vier Elementen um.

Achsen teilen

Die Funktion subplots() verfügt außerdem über die Parameter sharex und sharey. Sie steuern, ob die x- oder y-Achsen zwischen den Subplots geteilt werden. Beide sind standardmäßig auf False gesetzt.

12345678910111213141516171819
import matplotlib.pyplot as plt import numpy as np data_linear = np.arange(1, 11) data_squared = data_linear ** 2 # Create a 2x2 subplot grid with shared x-axis across all subplots fig, axs = plt.subplots(2, 2, sharex=True) # Flatten axs array for easier indexing axs = axs.ravel() # Plotting different data on each subplot axs[0].plot(data_linear) axs[1].plot(data_squared) axs[2].scatter(data_linear, data_linear) axs[3].scatter(data_linear, data_squared) plt.show()
copy

Die Einstellung sharex=True teilt die x-Achse über alle Subplots hinweg, was hier nützlich ist, da alle Subplots die gleichen x-Achsenwerte verwenden.

Sie können sharex oder sharey auch auf 'row' setzen, um die Achse innerhalb jeder Subplot-Zeile zu teilen, oder auf 'col', um sie innerhalb jeder Subplot-Spalte zu teilen.

Note
Mehr erfahren

Wie üblich können Sie gerne mehr in der subplots()-Dokumentation nachlesen, falls Sie möchten.

Aufgabe

Swipe to start coding

  1. Die korrekte Funktion zur Erstellung eines Subplot-Rasters verwenden.
  2. Das Raster soll 3 Zeilen und 1 Spalte haben (die ersten beiden Parameter angeben).
  3. Das rechte Schlüsselwortargument angeben, sodass die x-Achse für alle Subplots gemeinsam genutzt wird.
  4. Das Ergebnis der Funktion zur Erstellung der Subplots in den Variablen fig und axs speichern (von links nach rechts).
  5. Das erste Liniendiagramm für data_linear in der ersten Zeile (Zeile 0) des Subplot-Rasters platzieren.
  6. Das zweite Liniendiagramm für data_squared in der zweiten Zeile (Zeile 1) des Subplot-Rasters platzieren.
  7. Das dritte Liniendiagramm für data_exp in der dritten Zeile (Zeile 2) des Subplot-Rasters platzieren.

Lösung

Switch to desktopWechseln Sie zum Desktop, um in der realen Welt zu übenFahren Sie dort fort, wo Sie sind, indem Sie eine der folgenden Optionen verwenden
War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 3. Kapitel 6
Wir sind enttäuscht, dass etwas schief gelaufen ist. Was ist passiert?

Fragen Sie AI

expand
ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

book
Unterdiagramme

Die Funktion subplots() aus pyplot erfüllt genau diesen Zweck. Sie wurde bereits im ersten Abschnitt verwendet, um eine Zeichenfläche zu erstellen, und wird nun ausführlicher betrachtet.

Zeilen und Spalten

Die wichtigsten Argumente dieser Funktion sind nrows und ncolumns, die die Anzahl der Zeilen und Spalten im Subplot-Raster festlegen. Standardmäßig sind beide auf 1 gesetzt, sodass nur ein einzelnes Diagramm (Axes) erzeugt wird.

Die Funktion subplots() gibt ein Figure-Objekt und entweder ein einzelnes Axes-Objekt oder ein Array von Axes-Objekten zurück, abhängig von der Größe des Rasters.

12345
import matplotlib.pyplot as plt fig, axs = plt.subplots(2, 2) plt.show()
copy

Ein 2 mal 2 Subplot-Raster wurde erstellt.

Note
Hinweis

Da es mehrere Subplots gibt, gibt subplots ein Array von Axes-Objekten zurück, das üblicherweise in einer Variablen namens axs gespeichert wird (Singular ax steht für ein einzelnes Diagramm).

In diesem Fall ist axs ein zweidimensionales Array, daher werden sowohl ein Zeilen- als auch ein Spaltenindex benötigt, um auf ein bestimmtes Subplot zuzugreifen.

12345678910111213141516
import matplotlib.pyplot as plt import numpy as np data_linear = np.arange(1, 11) data_squared = data_linear ** 2 # Creating a 2x2 subplot grid fig, axs = plt.subplots(2, 2) # Creating a different plot for each Axes object axs[0, 0].plot(data_linear) axs[0, 1].plot(data_squared) axs[1, 0].scatter(data_linear, data_linear) axs[1, 1].scatter(data_linear, data_squared) plt.show()
copy

Die erste Zeile (Zeile 0) enthält zwei Liniendiagramme, und die zweite Zeile (Zeile 1) enthält zwei Streudiagramme.

Da jeder Plot auf einem separaten Subplot platziert ist, können plt.plot() oder plt.scatter() nicht direkt verwendet werden. Die geeignete Vorgehensweise ist, die jeweilige Methode auf jedem einzelnen Axes-Objekt aufzurufen.

Umwandlung in ein 1D-Array

Es ist ebenfalls möglich, die Methode .ravel() zu verwenden, um ein 2D-Axes-Array in ein 1D zusammenhängendes, flaches Array umzuwandeln:

12345678910111213141516171819
import matplotlib.pyplot as plt import numpy as np data_linear = np.arange(1, 11) data_squared = data_linear ** 2 # Creating a 2x2 subplot grid fig, axs = plt.subplots(2, 2) # Flattening axs to a 1D array for easier indexing axs = axs.ravel() # Creating a different plot for each Axes object axs[0].plot(data_linear) axs[1].plot(data_squared) axs[2].scatter(data_linear, data_linear) axs[3].scatter(data_linear, data_squared) plt.show()
copy

Mit einem 2x2-Array wandelt axs.ravel() dieses in ein 1D-Array mit vier Elementen um.

Achsen teilen

Die Funktion subplots() verfügt außerdem über die Parameter sharex und sharey. Sie steuern, ob die x- oder y-Achsen zwischen den Subplots geteilt werden. Beide sind standardmäßig auf False gesetzt.

12345678910111213141516171819
import matplotlib.pyplot as plt import numpy as np data_linear = np.arange(1, 11) data_squared = data_linear ** 2 # Create a 2x2 subplot grid with shared x-axis across all subplots fig, axs = plt.subplots(2, 2, sharex=True) # Flatten axs array for easier indexing axs = axs.ravel() # Plotting different data on each subplot axs[0].plot(data_linear) axs[1].plot(data_squared) axs[2].scatter(data_linear, data_linear) axs[3].scatter(data_linear, data_squared) plt.show()
copy

Die Einstellung sharex=True teilt die x-Achse über alle Subplots hinweg, was hier nützlich ist, da alle Subplots die gleichen x-Achsenwerte verwenden.

Sie können sharex oder sharey auch auf 'row' setzen, um die Achse innerhalb jeder Subplot-Zeile zu teilen, oder auf 'col', um sie innerhalb jeder Subplot-Spalte zu teilen.

Note
Mehr erfahren

Wie üblich können Sie gerne mehr in der subplots()-Dokumentation nachlesen, falls Sie möchten.

Aufgabe

Swipe to start coding

  1. Die korrekte Funktion zur Erstellung eines Subplot-Rasters verwenden.
  2. Das Raster soll 3 Zeilen und 1 Spalte haben (die ersten beiden Parameter angeben).
  3. Das rechte Schlüsselwortargument angeben, sodass die x-Achse für alle Subplots gemeinsam genutzt wird.
  4. Das Ergebnis der Funktion zur Erstellung der Subplots in den Variablen fig und axs speichern (von links nach rechts).
  5. Das erste Liniendiagramm für data_linear in der ersten Zeile (Zeile 0) des Subplot-Rasters platzieren.
  6. Das zweite Liniendiagramm für data_squared in der zweiten Zeile (Zeile 1) des Subplot-Rasters platzieren.
  7. Das dritte Liniendiagramm für data_exp in der dritten Zeile (Zeile 2) des Subplot-Rasters platzieren.

Lösung

Switch to desktopWechseln Sie zum Desktop, um in der realen Welt zu übenFahren Sie dort fort, wo Sie sind, indem Sie eine der folgenden Optionen verwenden
War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 3. Kapitel 6
Switch to desktopWechseln Sie zum Desktop, um in der realen Welt zu übenFahren Sie dort fort, wo Sie sind, indem Sie eine der folgenden Optionen verwenden
Wir sind enttäuscht, dass etwas schief gelaufen ist. Was ist passiert?
some-alt