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

Code¶

Allgemein¶

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()
No description has been provided for this image

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()
No description has been provided for this image
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()
No description has been provided for this image