Pakete laden¶
import pandas as pd # Für Datenanalyse und Tabellen
import numpy as np # Für numerische Berechnungen, Zufallszahlen, Arrays
import matplotlib.pyplot as plt # Für klassische Diagramme (z. B. Linien-, Balken-, Boxplots)
import seaborn as sns # Erweiterung für matplotlib – moderne, statistische Plots
data = pd.DataFrame({
"name": (
["braunhaarig"] * 15 +
["blond"] * 5 +
["rothaarig"] * 10 +
["schwarzhaarig"] * 12 +
["bunthaarig"] * 4
)
})
print(data.head())
name 0 braunhaarig 1 braunhaarig 2 braunhaarig 3 braunhaarig 4 braunhaarig
# Zufallsdaten für Brillenstatus und Geschlecht
import numpy as np
np.random.seed(42)
a = np.random.choice([1, 2], size=45, replace=True)
data1 = pd.DataFrame({
"geschlecht": ["männlich"] * 20 + ["weilblich"] * 25,
"brille": a
})
data1["brille"] = pd.Categorical.from_codes(
codes=data1["brille"] - 1,
categories=["Ja - Brille", "Nein - Keine Brille"]
)
print(data1.head())
geschlecht brille 0 männlich Ja - Brille 1 männlich Nein - Keine Brille 2 männlich Ja - Brille 3 männlich Ja - Brille 4 männlich Ja - Brille
Balkendiagramm / Säulendiagramm¶
Defintion¶
Das Balkendiagramm, bzw. Säulendiagramm stellt die Informationen durch waagerecht, bzw. senkrecht liegende Balken dar.
Beschreibung¶
Balken- wie Säulendiagramme bieten sich hier gleichermaßen an: Auf einer der beiden Diagrammachsen trägst du die Merkmalsausprägungen (hier: von „optimal“ bis „erhöht“) ab, auf der anderen Achse die beobachteten Häufigkeiten. Die Länge jedes Rechtsecks entspricht der darzustellenden Häufigkeit, seine Breite ist dagegen unerheblich. Du wählst sie je nach Geschmack aus. Ein Säulendiagramm mit sehr dünnen Säulen nennt man auch Stabdiagramm.
Das Balkendiagramm bzw. Säulendiagramm ist eines der häufigsten Diagrammtypen. Mit einem Balkendiagramm tragt ihr typischerweise die Häufigkeiten eines Merkmals in einer Grafik horizontal, mit einem Säulendiagramm vertikal auf.
Voraussetzung¶
✓ Balken- und Säulendiagramme eignen sich für kategoriale Variablen (nominal- oder ordinalskaliert).
Gestaltung¶
- Farbe
- Beschriftung
Code¶
Säulendiagramm - Base¶
# Säulendiagramm (vertikal)
import matplotlib.pyplot as plt
counts = data["name"].value_counts()
colors = ["yellow", "brown", "green", "red", "black"]
plt.bar(counts.index, counts.values, color=colors)
plt.title("Säulendiagramm")
plt.xlabel("Haarfarben")
plt.ylabel("Anzahl")
plt.show()
# Balkendiagramm (horizontal)
plt.barh(counts.index, counts.values, color=colors)
plt.title("Balkendiagramm")
plt.xlabel("Anzahl")
plt.ylabel("Haarfarben")
plt.show()
# Balkendiagramm mit Schraffur
hatch_patterns = ['/', '\\', '|', '-', '+']
bars = plt.bar(counts.index, counts.values, color="lightblue")
for bar, pattern in zip(bars, hatch_patterns):
bar.set_hatch(pattern)
plt.title("Schraffiertes Balkendiagramm")
plt.xlabel("Haarfarben")
plt.ylabel("Anzahl")
plt.show()
# Gruppiertes Balkendiagramm
crosstab = pd.crosstab(data1["geschlecht"], data1["brille"])
crosstab.plot(kind="bar", color=["red", "blue"], edgecolor="black")
plt.title("Brillenverteilung nach Geschlecht")
plt.xlabel("Geschlecht")
plt.ylabel("Anzahl")
plt.legend(title="Brille")
plt.tight_layout()
plt.show()