Pakete laden¶

In [1]:
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
In [2]:
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
In [3]:
# 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¶

In [4]:
# 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()
No description has been provided for this image
In [5]:
# Balkendiagramm (horizontal)
plt.barh(counts.index, counts.values, color=colors)
plt.title("Balkendiagramm")
plt.xlabel("Anzahl")
plt.ylabel("Haarfarben")
plt.show()
No description has been provided for this image
In [6]:
# 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()
No description has been provided for this image
In [7]:
# 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()
No description has been provided for this image