Kursinhalt
Ultimative Visualisierung mit Python
Ultimative Visualisierung mit Python
Gruppierte Balkendiagramme
Im vorherigen Kapitel haben wir ein gestapeltes Balkendiagramm verwendet, um mehrere Kategorien für jeden Wert auf der x-Achse zu vergleichen. Es gibt jedoch eine andere Möglichkeit, diese Aufgabe zu erfüllen, indem man ein gruppiertes Balkendiagramm verwendet. Es ermöglicht uns, solche Daten zu visualisieren, indem Balken an den Seiten anderer Balken platziert werden, anstatt sie übereinander zu stapeln.
Hier sind die Schritte, um dies zu erreichen:
-
Beginnen Sie mit der Angabe der Balkenbreite und erstellen Sie ein Array von x-Achsen-Koordinaten (Sie können
np.arange()
dafür verwenden); -
Erstellen Sie ein zweidimensionales Array, um die Arrays für jede Kategorie zu halten;
-
Verwenden Sie eine
for
-Schleife, um diebar()
-Funktion mehrmals aufzurufen, einmal für jede Kategorie (z.B. dreimal für drei Kategorien).
Schauen wir uns ein Beispiel an:
import matplotlib.pyplot as plt import numpy as np countries = ['USA', 'China', 'Japan'] positions = np.arange(len(countries)) primary_sector = np.array([1.4, 4.8, 0.4]) secondary_sector = np.array([11.3, 6.2, 0.8]) tertiary_sector = np.array([14.2, 8.4, 3.2]) sectors = np.array([primary_sector, secondary_sector, tertiary_sector]) # Setting the width of the bars width = 0.3 for i in range(len(sectors)): # Plotting the bars for each category (sector) plt.bar(positions + width * i, sectors[i], width) # Setting the x-axis ticks position and labels plt.xticks(positions + width * (len(sectors) - 1) / 2, countries) plt.show()
Die Funktion xticks()
passt die x-Achse auf folgende Weise an:
-
Das erste Argument
positions + width * (len(sectors) - 1) / 2
ist ein Array von x-Achsen-Koordinaten, die die Mittelpunkte der Balkengruppen darstellen; -
Das zweite Argument liefert Labels (Namen) für diese x-Achsen-Ticks, unter Verwendung des Arrays
countries
.
Hinweis
Der Code in unserem Beispiel ist ziemlich flexibel und funktioniert für eine beliebige Anzahl von Kategorien (Sie müssen möglicherweise nur
width
anpassen, um Überlappungen zu vermeiden).
Swipe to start coding
- Übergeben Sie das korrekte Array an die Funktion
len()
. - Verwenden Sie die korrekte Funktion, um Balken zu zeichnen.
- Verwenden Sie die korrekte Variable, die mit
i
multipliziert werden soll. - Verwenden Sie die korrekte Variable als Index für das
answers
-Array. - Übergeben Sie die korrekte Variable als die rechten Argumente der Plot-Funktion.
Lösung
Danke für Ihr Feedback!
Gruppierte Balkendiagramme
Im vorherigen Kapitel haben wir ein gestapeltes Balkendiagramm verwendet, um mehrere Kategorien für jeden Wert auf der x-Achse zu vergleichen. Es gibt jedoch eine andere Möglichkeit, diese Aufgabe zu erfüllen, indem man ein gruppiertes Balkendiagramm verwendet. Es ermöglicht uns, solche Daten zu visualisieren, indem Balken an den Seiten anderer Balken platziert werden, anstatt sie übereinander zu stapeln.
Hier sind die Schritte, um dies zu erreichen:
-
Beginnen Sie mit der Angabe der Balkenbreite und erstellen Sie ein Array von x-Achsen-Koordinaten (Sie können
np.arange()
dafür verwenden); -
Erstellen Sie ein zweidimensionales Array, um die Arrays für jede Kategorie zu halten;
-
Verwenden Sie eine
for
-Schleife, um diebar()
-Funktion mehrmals aufzurufen, einmal für jede Kategorie (z.B. dreimal für drei Kategorien).
Schauen wir uns ein Beispiel an:
import matplotlib.pyplot as plt import numpy as np countries = ['USA', 'China', 'Japan'] positions = np.arange(len(countries)) primary_sector = np.array([1.4, 4.8, 0.4]) secondary_sector = np.array([11.3, 6.2, 0.8]) tertiary_sector = np.array([14.2, 8.4, 3.2]) sectors = np.array([primary_sector, secondary_sector, tertiary_sector]) # Setting the width of the bars width = 0.3 for i in range(len(sectors)): # Plotting the bars for each category (sector) plt.bar(positions + width * i, sectors[i], width) # Setting the x-axis ticks position and labels plt.xticks(positions + width * (len(sectors) - 1) / 2, countries) plt.show()
Die Funktion xticks()
passt die x-Achse auf folgende Weise an:
-
Das erste Argument
positions + width * (len(sectors) - 1) / 2
ist ein Array von x-Achsen-Koordinaten, die die Mittelpunkte der Balkengruppen darstellen; -
Das zweite Argument liefert Labels (Namen) für diese x-Achsen-Ticks, unter Verwendung des Arrays
countries
.
Hinweis
Der Code in unserem Beispiel ist ziemlich flexibel und funktioniert für eine beliebige Anzahl von Kategorien (Sie müssen möglicherweise nur
width
anpassen, um Überlappungen zu vermeiden).
Swipe to start coding
- Übergeben Sie das korrekte Array an die Funktion
len()
. - Verwenden Sie die korrekte Funktion, um Balken zu zeichnen.
- Verwenden Sie die korrekte Variable, die mit
i
multipliziert werden soll. - Verwenden Sie die korrekte Variable als Index für das
answers
-Array. - Übergeben Sie die korrekte Variable als die rechten Argumente der Plot-Funktion.
Lösung
Danke für Ihr Feedback!