Pakete laden¶
In [1]:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
Definition¶
Liniendiagramme geben uns die Möglichkeit Trends oder Veränderungen im Zeitablauf dazustellen. Die verbundenen Datenpunkte stellen diesen Trend. Es können ein oder mehrere Zahlenreihen in einem Liniendiagramm darstellen.
Beschreibung¶
Ein Liniendiagramm (auch Kurvendiagramm) ist die graphische Darstellung des funktionellen Zusammenhangs zweier Merkmale in Linienform. Im Gegensatz zum Streudiagramm kann es jeweils nur ein Wertepaar geben. Voraussetzung für die Darstellung ist, dass die Daten der Variable auf der x-Achse sortiert vorliegen müssen.
Voraussetzung¶
✓ Die zu untersuchenden Merkmale sollten metrisch sein.
Gestaltung¶
einfach¶
- clean
- gut lesebar
- Farben
- Achsen sichtbar und richtig beschreiben
mehrfach¶
- andere Symbole
- Farben (bunt)
Daten¶
In [2]:
import pandas as pd
data = pd.DataFrame({
"name": ["A"] * 5 + ["B"] * 5,
"value": list(range(1990, 1995)) * 2,
"value1": list(range(1, 6)) + list(range(8, 13))
})
print(data.head())
name value value1 0 A 1990 1 1 A 1991 2 2 A 1992 3 3 A 1993 4 4 A 1994 5
In [3]:
# Python-Code – Zeitreihe 1990–1999 mit Zufallswerten
import numpy as np
np.random.seed(0)
data1 = pd.DataFrame({
"value1": list(range(1990, 2000)),
"value2": np.random.normal(loc=12, scale=5, size=10)
})
print(data1)
value1 value2 0 1990 20.820262 1 1991 14.000786 2 1992 16.893690 3 1993 23.204466 4 1994 21.337790 5 1995 7.113611 6 1996 16.750442 7 1997 11.243214 8 1998 11.483906 9 1999 14.052993
In [4]:
# Python-Code – Zeitreihe mit Linie und Punkten
import matplotlib.pyplot as plt
plt.plot(data1["value1"], data1["value2"], marker='^', linestyle='-', color='darkgray')
plt.title("Ich bin eine Zeitreihe")
plt.xlabel("Zeit in Jahren")
plt.ylabel("Anzahl / Stückzahlen")
plt.grid(True)
plt.show()
Teilmengen für Gruppen A und B¶
In [5]:
# Python-Code –
A = data[data["name"] == "A"]
B = data[data["name"] == "B"]
In [6]:
# Zwei Linien in einem Diagramm mit Legende
plt.plot(A["value"], A["value1"], marker='o', color='red', linestyle='-', label='Line 1')
plt.plot(B["value"], B["value1"], marker='^', color='blue', linestyle='--', label='Line 2')
plt.title("Vergleich zweier Linien")
plt.xlabel("x")
plt.ylabel("y")
plt.ylim(1, 15)
plt.legend(loc="upper left")
plt.grid(True)
plt.show()
In [7]:
sns.set_theme()
fig, ax = plt.subplots()
# Linie
sns.lineplot(data=data1, x="value1", y="value2", color="darkgray", linewidth=0.7, alpha=1, ax=ax)
# Punkte
sns.scatterplot(data=data1, x="value1", y="value2",
s=100, alpha=0.2, color="green", marker="^", ax=ax)
# X-Achse log-skalieren
ax.set_xscale("log")
ax.set_xticks(range(1990, 2000))
ax.set_title("Zeitreihe")
ax.set_xlabel("Jahr")
ax.set_ylabel("Anzahle / Stück")
ax.grid(True)
plt.tight_layout()
plt.show()