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

Kursinhalt

Ultimative Visualisierung mit Python

Ultimative Visualisierung mit Python

1. Einführung in Matplotlib
2. Erstellen Häufig Verwendeter Diagramme
3. Anpassung von Plots
4. Mehr Statistische Diagramme
5. Visualisierung mit Seaborn

book
Unterdiagramme

Bis jetzt haben wir nur mehrere Plots auf einem einzigen Axes-Objekt erstellt, indem wir die Plot-Funktionen mehrfach aufgerufen haben (wir können verschiedene Plot-Typen kombinieren).

Jetzt ist es an der Zeit zu lernen, wie man mehrere Axes-Objekte erstellt und somit mehrere Plots auf verschiedenen Axes-Objekten.

pyplot hat eine subplots()-Funktion genau für diesen Zweck. Wir haben diese Funktion bereits verwendet, als wir im ersten Abschnitt eine Leinwand erstellt haben, jetzt werden wir sie genauer betrachten.

Zeilen und Spalten

Die zwei wichtigsten Argumente dieser Funktion sind nrows und ncolumns, die die Anzahl der Zeilen und Spalten des Subplot-Rasters angeben (ihre Standardwerte sind 1 und 1, was zu nur einem Axes-Objekt führt).

subplots() gibt ein Figure-Objekt und entweder ein Axes-Objekt oder ein Array von Axes-Objekten zurück.

Schauen wir uns ein Beispiel an:

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

Wir haben gerade ein 2x2 Unterplot-Raster erstellt.

Hinweis

Die Funktion subplots gibt hier ein Array von Axes-Objekten zurück, da es mehr als einen Unterplot gibt. Wenn ein Array von Axes zurückgegeben wird, wird die Variable zum Speichern oft axs genannt (ax wird meistens für ein einzelnes Axes-Objekt verwendet).

axs ist in unserem Fall ein zweidimensionales Array, weshalb wir sowohl einen Zeilenindex als auch einen Spaltenindex verwenden sollten, um auf ein bestimmtes Axes-Objekt zuzugreifen.

Lassen Sie uns ein paar Plots erstellen:

123456789101112
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 des Unterplot-Rasters (Zeile 0) hat zwei Liniendiagramme und die zweite Zeile (Zeile 1) hat zwei Streudiagramme.

Denken Sie daran, dass wir hier nicht plt.plot() oder plt.scatter() verwenden können, da wir jeden Plot auf einem separaten Axes-Objekt (Unterplot) platzieren möchten.

Umwandlung in ein 1D-Array

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

1234567891011121314
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) # Converting axs to 1D array of 4 elements 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

Da wir ein 2x2-Array haben, gibt axs.ravel() ein 1D-Array mit vier Elementen zurück.

Achsen teilen

Zwei weitere wichtige Parameter der subplots()-Funktion sind sharex und sharey, die angeben, ob die Eigenschaften über die x- oder y-Achsen hinweg geteilt werden sollen. Beide haben standardmäßig den Wert False. Lassen Sie uns einen von ihnen in unserem Beispiel ändern:

1234567891011121314
import matplotlib.pyplot as plt import numpy as np data_linear = np.arange(1, 11) data_squared = data_linear ** 2 # Share x-axis among all the subplots fig, axs = plt.subplots(2, 2, sharex=True) # Converting axs to 1D array of 4 elements 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 dem Wert True für sharex wird die x-Achse unter allen Unterdiagrammen geteilt, was hier sinnvoll ist, da wir für alle Unterdiagramme die gleichen x-Achsen-Koordinaten haben.

Darüber hinaus können wir die Parameter sharex oder sharey auf row (jede Unterdiagrammzeile teilt eine entsprechende Achse) oder col (jede Unterdiagrammspalte teilt eine entsprechende Achse) setzen.

Wie üblich, fühlen Sie sich frei, mehr in der Dokumentation zu erkunden, falls Sie möchten.

Aufgabe

Swipe to start coding

  1. Verwenden Sie die richtige Funktion, um ein Subplot-Raster zu erstellen.
  2. Das Raster sollte 3 Zeilen und 1 Spalte haben (geben Sie die ersten beiden Parameter an).
  3. Geben Sie das rechteste Schlüsselwortargument an, damit die x-Achse unter allen Subplots geteilt wird.
  4. Speichern Sie das Ergebnis der Funktion zum Erstellen von Subplots in den Variablen fig und axs (von links nach rechts).
  5. Platzieren Sie das erste Liniendiagramm für data_linear in der ersten Zeile (Zeile 0) des Subplot-Rasters.
  6. Platzieren Sie das zweite Liniendiagramm für data_squared in der zweiten Zeile (Zeile 1) des Subplot-Rasters.
  7. Platzieren Sie das dritte Liniendiagramm für data_exp in der dritten Zeile (Zeile 2) des Subplot-Rasters.

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
toggle bottom row

book
Unterdiagramme

Bis jetzt haben wir nur mehrere Plots auf einem einzigen Axes-Objekt erstellt, indem wir die Plot-Funktionen mehrfach aufgerufen haben (wir können verschiedene Plot-Typen kombinieren).

Jetzt ist es an der Zeit zu lernen, wie man mehrere Axes-Objekte erstellt und somit mehrere Plots auf verschiedenen Axes-Objekten.

pyplot hat eine subplots()-Funktion genau für diesen Zweck. Wir haben diese Funktion bereits verwendet, als wir im ersten Abschnitt eine Leinwand erstellt haben, jetzt werden wir sie genauer betrachten.

Zeilen und Spalten

Die zwei wichtigsten Argumente dieser Funktion sind nrows und ncolumns, die die Anzahl der Zeilen und Spalten des Subplot-Rasters angeben (ihre Standardwerte sind 1 und 1, was zu nur einem Axes-Objekt führt).

subplots() gibt ein Figure-Objekt und entweder ein Axes-Objekt oder ein Array von Axes-Objekten zurück.

Schauen wir uns ein Beispiel an:

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

Wir haben gerade ein 2x2 Unterplot-Raster erstellt.

Hinweis

Die Funktion subplots gibt hier ein Array von Axes-Objekten zurück, da es mehr als einen Unterplot gibt. Wenn ein Array von Axes zurückgegeben wird, wird die Variable zum Speichern oft axs genannt (ax wird meistens für ein einzelnes Axes-Objekt verwendet).

axs ist in unserem Fall ein zweidimensionales Array, weshalb wir sowohl einen Zeilenindex als auch einen Spaltenindex verwenden sollten, um auf ein bestimmtes Axes-Objekt zuzugreifen.

Lassen Sie uns ein paar Plots erstellen:

123456789101112
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 des Unterplot-Rasters (Zeile 0) hat zwei Liniendiagramme und die zweite Zeile (Zeile 1) hat zwei Streudiagramme.

Denken Sie daran, dass wir hier nicht plt.plot() oder plt.scatter() verwenden können, da wir jeden Plot auf einem separaten Axes-Objekt (Unterplot) platzieren möchten.

Umwandlung in ein 1D-Array

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

1234567891011121314
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) # Converting axs to 1D array of 4 elements 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

Da wir ein 2x2-Array haben, gibt axs.ravel() ein 1D-Array mit vier Elementen zurück.

Achsen teilen

Zwei weitere wichtige Parameter der subplots()-Funktion sind sharex und sharey, die angeben, ob die Eigenschaften über die x- oder y-Achsen hinweg geteilt werden sollen. Beide haben standardmäßig den Wert False. Lassen Sie uns einen von ihnen in unserem Beispiel ändern:

1234567891011121314
import matplotlib.pyplot as plt import numpy as np data_linear = np.arange(1, 11) data_squared = data_linear ** 2 # Share x-axis among all the subplots fig, axs = plt.subplots(2, 2, sharex=True) # Converting axs to 1D array of 4 elements 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 dem Wert True für sharex wird die x-Achse unter allen Unterdiagrammen geteilt, was hier sinnvoll ist, da wir für alle Unterdiagramme die gleichen x-Achsen-Koordinaten haben.

Darüber hinaus können wir die Parameter sharex oder sharey auf row (jede Unterdiagrammzeile teilt eine entsprechende Achse) oder col (jede Unterdiagrammspalte teilt eine entsprechende Achse) setzen.

Wie üblich, fühlen Sie sich frei, mehr in der Dokumentation zu erkunden, falls Sie möchten.

Aufgabe

Swipe to start coding

  1. Verwenden Sie die richtige Funktion, um ein Subplot-Raster zu erstellen.
  2. Das Raster sollte 3 Zeilen und 1 Spalte haben (geben Sie die ersten beiden Parameter an).
  3. Geben Sie das rechteste Schlüsselwortargument an, damit die x-Achse unter allen Subplots geteilt wird.
  4. Speichern Sie das Ergebnis der Funktion zum Erstellen von Subplots in den Variablen fig und axs (von links nach rechts).
  5. Platzieren Sie das erste Liniendiagramm für data_linear in der ersten Zeile (Zeile 0) des Subplot-Rasters.
  6. Platzieren Sie das zweite Liniendiagramm für data_squared in der zweiten Zeile (Zeile 1) des Subplot-Rasters.
  7. Platzieren Sie das dritte Liniendiagramm für data_exp in der dritten Zeile (Zeile 2) des Subplot-Rasters.

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
We're sorry to hear that something went wrong. What happened?
some-alt