14 KiB
Visualisierung von Mengen
![]() |
---|
Visualisierung von Mengen - Sketchnote von @nitya |
In dieser Lektion wirst du erkunden, wie man eine der vielen verfügbaren Python-Bibliotheken verwendet, um interessante Visualisierungen rund um das Konzept der Menge zu erstellen. Mit einem bereinigten Datensatz über die Vögel von Minnesota kannst du viele interessante Fakten über die lokale Tierwelt lernen.
Quiz vor der Lektion
Beobachte die Flügelspannweite mit Matplotlib
Eine ausgezeichnete Bibliothek, um sowohl einfache als auch anspruchsvolle Diagramme und Grafiken verschiedener Art zu erstellen, ist Matplotlib. Allgemein umfasst der Prozess des Plottens von Daten mit diesen Bibliotheken das Identifizieren der Teile deines DataFrames, die du anvisieren möchtest, das Durchführen notwendiger Transformationen der Daten, das Zuweisen von x- und y-Achsenwerten, das Entscheiden, welche Art von Diagramm angezeigt werden soll, und schließlich das Anzeigen des Diagramms. Matplotlib bietet eine große Vielfalt an Visualisierungen, aber für diese Lektion konzentrieren wir uns auf die am besten geeigneten für die Visualisierung von Mengen: Liniendiagramme, Streudiagramme und Balkendiagramme.
✅ Wähle das beste Diagramm, das zur Struktur deiner Daten und der Geschichte, die du erzählen möchtest, passt.
- Um Trends über die Zeit zu analysieren: Linie
- Um Werte zu vergleichen: Balken, Säulen, Kreisdiagramm, Streudiagramm
- Um zu zeigen, wie Teile zu einem Ganzen gehören: Kreisdiagramm
- Um die Verteilung von Daten zu zeigen: Streudiagramm, Balken
- Um Trends zu zeigen: Linie, Säule
- Um Beziehungen zwischen Werten zu zeigen: Linie, Streudiagramm, Blasendiagramm
Wenn du einen Datensatz hast und herausfinden möchtest, wie viel von einem bestimmten Element enthalten ist, wird eine der ersten Aufgaben sein, die Werte zu inspizieren.
✅ Es gibt sehr gute 'Cheat Sheets' für Matplotlib hier.
Erstelle ein Liniendiagramm über die Flügelspannweiten von Vögeln
Öffne die Datei notebook.ipynb
im Stammverzeichnis dieses Lektionenordners und füge eine Zelle hinzu.
Hinweis: Die Daten befinden sich im Stammverzeichnis dieses Repos im Ordner
/data
.
import pandas as pd
import matplotlib.pyplot as plt
birds = pd.read_csv('../../data/birds.csv')
birds.head()
Diese Daten sind eine Mischung aus Text und Zahlen:
Name | ScientificName | Category | Order | Family | Genus | ConservationStatus | MinLength | MaxLength | MinBodyMass | MaxBodyMass | MinWingspan | MaxWingspan | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | Schwarzbauch-Pfeifgans | Dendrocygna autumnalis | Enten/Gänse/Wasservögel | Anseriformes | Anatidae | Dendrocygna | LC | 47 | 56 | 652 | 1020 | 76 | 94 |
1 | Fuchsrote Pfeifgans | Dendrocygna bicolor | Enten/Gänse/Wasservögel | Anseriformes | Anatidae | Dendrocygna | LC | 45 | 53 | 712 | 1050 | 85 | 93 |
2 | Schneegans | Anser caerulescens | Enten/Gänse/Wasservögel | Anseriformes | Anatidae | Anser | LC | 64 | 79 | 2050 | 4050 | 135 | 165 |
3 | Zwerggans | Anser rossii | Enten/Gänse/Wasservögel | Anseriformes | Anatidae | Anser | LC | 57.3 | 64 | 1066 | 1567 | 113 | 116 |
4 | Saatgans | Anser albifrons | Enten/Gänse/Wasservögel | Anseriformes | Anatidae | Anser | LC | 64 | 81 | 1930 | 3310 | 130 | 165 |
Beginnen wir damit, einige der numerischen Daten mit einem einfachen Liniendiagramm zu plotten. Angenommen, du möchtest die maximale Flügelspannweite dieser interessanten Vögel betrachten.
wingspan = birds['MaxWingspan']
wingspan.plot()
Was fällt dir sofort auf? Es scheint mindestens einen Ausreißer zu geben – das ist eine beeindruckende Flügelspannweite! Eine Flügelspannweite von 2300 Zentimetern entspricht 23 Metern – gibt es Pterodaktylen in Minnesota? Lass uns das untersuchen.
Während du in Excel schnell sortieren könntest, um diese Ausreißer zu finden, die wahrscheinlich Tippfehler sind, setzen wir den Visualisierungsprozess innerhalb des Diagramms fort.
Füge Beschriftungen zur x-Achse hinzu, um zu zeigen, um welche Vogelarten es sich handelt:
plt.title('Max Wingspan in Centimeters')
plt.ylabel('Wingspan (CM)')
plt.xlabel('Birds')
plt.xticks(rotation=45)
x = birds['Name']
y = birds['MaxWingspan']
plt.plot(x, y)
plt.show()
Selbst mit einer Drehung der Beschriftungen um 45 Grad sind es zu viele, um sie zu lesen. Versuchen wir eine andere Strategie: Beschrifte nur die Ausreißer und setze die Beschriftungen innerhalb des Diagramms. Du kannst ein Streudiagramm verwenden, um mehr Platz für die Beschriftung zu schaffen:
plt.title('Max Wingspan in Centimeters')
plt.ylabel('Wingspan (CM)')
plt.tick_params(axis='both',which='both',labelbottom=False,bottom=False)
for i in range(len(birds)):
x = birds['Name'][i]
y = birds['MaxWingspan'][i]
plt.plot(x, y, 'bo')
if birds['MaxWingspan'][i] > 500:
plt.text(x, y * (1 - 0.05), birds['Name'][i], fontsize=12)
plt.show()
Was passiert hier? Du hast tick_params
verwendet, um die unteren Beschriftungen auszublenden, und dann eine Schleife über deinen Vogel-Datensatz erstellt. Indem du das Diagramm mit kleinen runden blauen Punkten (bo
) geplottet hast, hast du überprüft, ob ein Vogel eine maximale Flügelspannweite von über 500 hat, und falls ja, seinen Namen als Beschriftung neben dem Punkt angezeigt. Du hast die Beschriftungen auf der y-Achse leicht versetzt (y * (1 - 0.05)
) und den Vogelnamen als Beschriftung verwendet.
Was hast du herausgefunden?
Filtere deine Daten
Sowohl der Weißkopfseeadler als auch der Präriefalke scheinen, obwohl wahrscheinlich sehr große Vögel, falsch beschriftet zu sein, mit einer zusätzlichen 0
in ihrer maximalen Flügelspannweite. Es ist unwahrscheinlich, dass du einem Weißkopfseeadler mit einer Flügelspannweite von 25 Metern begegnest, aber falls doch, lass es uns wissen! Lass uns einen neuen DataFrame ohne diese beiden Ausreißer erstellen:
plt.title('Max Wingspan in Centimeters')
plt.ylabel('Wingspan (CM)')
plt.xlabel('Birds')
plt.tick_params(axis='both',which='both',labelbottom=False,bottom=False)
for i in range(len(birds)):
x = birds['Name'][i]
y = birds['MaxWingspan'][i]
if birds['Name'][i] not in ['Bald eagle', 'Prairie falcon']:
plt.plot(x, y, 'bo')
plt.show()
Durch das Herausfiltern von Ausreißern sind deine Daten jetzt kohärenter und verständlicher.
Jetzt, da wir einen bereinigten Datensatz zumindest in Bezug auf die Flügelspannweite haben, lass uns mehr über diese Vögel herausfinden.
Während Linien- und Streudiagramme Informationen über Datenwerte und deren Verteilungen anzeigen können, möchten wir über die Werte in diesem Datensatz nachdenken. Du könntest Visualisierungen erstellen, um folgende Fragen zur Menge zu beantworten:
Wie viele Kategorien von Vögeln gibt es und wie viele gibt es in jeder Kategorie?
Wie viele Vögel sind ausgestorben, gefährdet, selten oder häufig?
Wie viele gibt es von den verschiedenen Gattungen und Ordnungen in der Terminologie von Linnaeus?
Erkunde Balkendiagramme
Balkendiagramme sind praktisch, wenn du Gruppierungen von Daten anzeigen möchtest. Lass uns die Kategorien von Vögeln in diesem Datensatz erkunden, um zu sehen, welche am häufigsten vorkommt.
Erstelle im Notebook eine grundlegende Balkengrafik.
✅ Hinweis: Du kannst entweder die beiden Ausreißer-Vögel, die wir im vorherigen Abschnitt identifiziert haben, herausfiltern, den Tippfehler in ihrer Flügelspannweite korrigieren oder sie für diese Übungen, die nicht von den Flügelspannweiten abhängen, belassen.
Wenn du ein Balkendiagramm erstellen möchtest, kannst du die Daten auswählen, auf die du dich konzentrieren möchtest. Balkendiagramme können aus Rohdaten erstellt werden:
birds.plot(x='Category',
kind='bar',
stacked=True,
title='Birds of Minnesota')
Dieses Balkendiagramm ist jedoch unleserlich, da es zu viele nicht gruppierte Daten gibt. Du musst nur die Daten auswählen, die du plotten möchtest, also lass uns die Länge der Vögel basierend auf ihrer Kategorie betrachten.
Filtere deine Daten, um nur die Kategorie der Vögel einzuschließen.
✅ Beachte, dass du Pandas verwendest, um die Daten zu verwalten, und dann Matplotlib für die Diagrammerstellung verwendest.
Da es viele Kategorien gibt, kannst du dieses Diagramm vertikal anzeigen und seine Höhe anpassen, um alle Daten darzustellen:
category_count = birds.value_counts(birds['Category'].values, sort=True)
plt.rcParams['figure.figsize'] = [6, 12]
category_count.plot.barh()
Dieses Balkendiagramm zeigt eine gute Übersicht über die Anzahl der Vögel in jeder Kategorie. Auf einen Blick siehst du, dass die größte Anzahl von Vögeln in dieser Region zur Kategorie Enten/Gänse/Wasservögel gehört. Minnesota ist das 'Land der 10.000 Seen', also ist das nicht überraschend!
✅ Probiere einige andere Zählungen in diesem Datensatz aus. Überrascht dich etwas?
Daten vergleichen
Du kannst verschiedene Vergleiche von gruppierten Daten ausprobieren, indem du neue Achsen erstellst. Probiere einen Vergleich der MaxLength eines Vogels basierend auf seiner Kategorie:
maxlength = birds['MaxLength']
plt.barh(y=birds['Category'], width=maxlength)
plt.rcParams['figure.figsize'] = [6, 12]
plt.show()
Hier gibt es keine Überraschungen: Kolibris haben die geringste MaxLength im Vergleich zu Pelikanen oder Gänsen. Es ist gut, wenn Daten logisch Sinn ergeben!
Du kannst interessantere Visualisierungen von Balkendiagrammen erstellen, indem du Daten überlagerst. Lass uns die Minimal- und Maximal-Länge einer bestimmten Vogelkategorie überlagern:
minLength = birds['MinLength']
maxLength = birds['MaxLength']
category = birds['Category']
plt.barh(category, maxLength)
plt.barh(category, minLength)
plt.show()
In diesem Diagramm kannst du den Bereich pro Vogelkategorie der Minimal- und Maximal-Länge sehen. Du kannst mit Sicherheit sagen, dass, basierend auf diesen Daten, je größer der Vogel, desto größer sein Längenbereich. Faszinierend!
🚀 Herausforderung
Dieser Vogel-Datensatz bietet eine Fülle von Informationen über verschiedene Vogelarten innerhalb eines bestimmten Ökosystems. Suche im Internet nach anderen vogelbezogenen Datensätzen. Übe das Erstellen von Diagrammen und Grafiken zu diesen Vögeln, um Fakten zu entdecken, die dir vorher nicht bewusst waren.
Quiz nach der Lektion
Rückblick & Selbststudium
Diese erste Lektion hat dir einige Informationen darüber gegeben, wie man Matplotlib verwendet, um Mengen zu visualisieren. Recherchiere andere Möglichkeiten, mit Datensätzen für Visualisierungen zu arbeiten. Plotly ist eine, die wir in diesen Lektionen nicht behandeln werden, also schau dir an, was sie bieten kann.
Aufgabe
Linien, Streudiagramme und Balken
Haftungsausschluss:
Dieses Dokument wurde mit dem KI-Übersetzungsdienst Co-op Translator übersetzt. Obwohl wir uns um Genauigkeit bemühen, beachten Sie bitte, dass automatisierte Übersetzungen Fehler oder Ungenauigkeiten enthalten können. Das Originaldokument in seiner ursprünglichen Sprache sollte als maßgebliche Quelle betrachtet werden. Für kritische Informationen wird eine professionelle menschliche Übersetzung empfohlen. Wir übernehmen keine Haftung für Missverständnisse oder Fehlinterpretationen, die sich aus der Nutzung dieser Übersetzung ergeben.