Linien- und Streudiagramme
Stellen Sie kontinuierliche Daten mit ax.plot() und diskrete Punkte mit ax.scatter() dar und steuern Sie Farbe, Marker und Linienart.
Linien- und Streudiagramme ist eine kostenlose Pandas & NumPy Academy-Lektion auf CoddyKit. Dies ist Lektion 2 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Pandas & NumPy Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Pandas & NumPy Academy-Kurs umfasst insgesamt 4 Lektionen.
Linien- und Streudiagramme: zentrale Plot-Typen
Linienplots verbinden aufeinanderfolgende Datenpunkte mit einer Linie und eignen sich ideal zur Darstellung von Trends im Zeitverlauf oder kontinuierlichen Funktionen. Streudiagramme zeichnen einzelne Punkte ohne Verbindungslinien und eignen sich daher hervorragend, um Beziehungen zwischen zwei numerischen Variablen zu untersuchen. Beide werden auf einem Matplotlib-Axes-Objekt erstellt: ax.plot() für Linien und ax.scatter() für Streupunkte.
ax.plot() für Liniendiagramme
ax.plot(x, y) zeichnet eine Linie, die Datenpunkte in ihrer Reihenfolge verbindet. Übergeben Sie die x-Werte als erstes und die y-Werte als zweites Argument. Beides kann eine Python-Liste, ein NumPy-Array oder eine Pandas Series sein. Wird nur ein Argument übergeben, verwendet Matplotlib automatisch den Index (0, 1, 2, ...) als x-Achse. Die Methode gibt eine Liste von Line2D-Artist-Objekten zurück.
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 2 * np.pi, 100)
y = np.sin(x)
fig, ax = plt.subplots(figsize=(7, 4))
ax.plot(x, y) # basic line plot
ax.set_title('Sine Wave')
ax.set_xlabel('x')
ax.set_ylabel('sin(x)')
# plt.show()
plt.close()Linienstil und Farbe steuern
Die häufigsten Schlüsselwortargumente von ax.plot() sind: color (Name, Hexadezimalwert oder RGB-Tupel), linewidth (oder lw), linestyle (oder ls): '-' durchgezogen, '--' gestrichelt, ':' gepunktet, '-.' Strich-Punkt, marker (Form an jedem Datenpunkt) und markersize. Kombinieren Sie linestyle und marker, um gleichzeitig die Linie und die einzelnen Datenpunkte anzuzeigen.
fig, ax = plt.subplots(figsize=(7, 4))
# Solid blue line with circle markers
ax.plot(x, np.sin(x), color='steelblue', lw=2, ls='-',
marker='o', markersize=4, label='sin(x)')
# Dashed red line
ax.plot(x, np.cos(x), color='crimson', lw=1.5, ls='--', label='cos(x)')
ax.legend()
plt.close()Mehrere Linien darstellen
Rufen Sie ax.plot() mehrmals auf, um mehrere Linien in derselben Axes übereinanderzulegen. Matplotlib wechselt automatisch durch eine Standardfarbpalette. Übergeben Sie für jede Linie immer das Schlüsselwort label, damit ax.legend() sie automatisch beschriften kann. Platzieren Sie den Aufruf der Legende nach allen Plot-Aufrufen, damit alle Linien enthalten sind.
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
np.random.seed(0)
dates = pd.date_range('2024-01', periods=12, freq='ME')
fig, ax = plt.subplots(figsize=(8, 4))
for product in ['A', 'B', 'C']:
sales = np.random.randint(50, 200, 12)
ax.plot(dates, sales, marker='o', label=f'Product {product}')
ax.set_title('Monthly Sales by Product')
ax.legend()
plt.close()Pandas-DataFrames direkt darstellen
Pandas-DataFrames verfügen über eine .plot()-Methode, die direkt Matplotlib-Diagramme erstellt. Übergeben Sie ax=ax, um auf einem vorhandenen Axes-Objekt zu zeichnen. df.plot(ax=ax) stellt alle Spalten als separate Linien dar und verwendet den DataFrame-Index als x-Achse. Anschließend können Sie das ax-Objekt weiterhin mit allen Matplotlib-Anpassungen bearbeiten.
df = pd.DataFrame(
np.random.randn(12, 3),
index=pd.date_range('2024', periods=12, freq='ME'),
columns=['North', 'South', 'West']
).cumsum()
fig, ax = plt.subplots(figsize=(8, 4))
df.plot(ax=ax, linewidth=1.5)
ax.set_title('Cumulative Revenue by Region')
ax.set_ylabel('Revenue (cumulative)')
plt.close()ax.scatter() für Streudiagramme
ax.scatter(x, y) zeichnet einzelne Punkte ohne Verbindungslinien. Anders als ax.plot() setzt scatter nicht voraus, dass die Daten geordnet sind. Wichtige Parameter sind: c (Farbe, kann für eine individuelle Färbung ein Array sein), s (Punktgröße, kann ebenfalls ein Array sein), cmap (Farbkarte, wenn c numerisch ist) und alpha (Transparenz von 0 bis 1 zur Behandlung von Überlagerungen).
np.random.seed(42)
x = np.random.randn(100)
y = 2 * x + np.random.randn(100)
fig, ax = plt.subplots(figsize=(6, 5))
ax.scatter(x, y, color='steelblue', alpha=0.6, s=40)
ax.set_xlabel('Feature X')
ax.set_ylabel('Target Y')
ax.set_title('Feature vs Target')
plt.close()Streupunkte nach Kategorie einfärben
Übergeben Sie dem Parameter c ein numerisches Array und verwenden Sie eine cmap-Farbkarte, um Streupunkte anhand einer dritten Variable einzufärben. Fügen Sie mit plt.colorbar(scatter_obj) eine Farbskala hinzu. Diese Technik wird als Variante eines Blasendiagramms bezeichnet, wenn der Parameter s (Größe) zusätzlich anhand einer vierten Variable variiert wird.
categories = np.random.choice([0, 1, 2], size=100)
fig, ax = plt.subplots(figsize=(6, 5))
scatter = ax.scatter(x, y, c=categories, cmap='Set1',
alpha=0.7, s=60, edgecolors='none')
fig.colorbar(scatter, ax=ax, label='Category')
ax.set_title('Scatter Coloured by Category')
plt.close()Eine Trendlinie hinzufügen
Ein Streudiagramm mit einer angepassten Trendlinie vermittelt sowohl die einzelnen Datenpunkte als auch das übergreifende Muster. Verwenden Sie np.polyfit(x, y, 1), um eine lineare Anpassung zu berechnen, werten Sie diese mit np.poly1d(coeffs)(x_range) aus und legen Sie das Ergebnis mit ax.plot() über das Streudiagramm. Die Trendlinie sollte dünner sein und einen anderen Stil haben, damit sie sich von den Datenpunkten unterscheidet.
fig, ax = plt.subplots(figsize=(6, 5))
ax.scatter(x, y, alpha=0.4, s=30, color='steelblue', label='Data')
# Fit and plot linear trend line
coeffs = np.polyfit(x, y, 1)
x_line = np.linspace(x.min(), x.max(), 100)
y_line = np.poly1d(coeffs)(x_line)
ax.plot(x_line, y_line, color='red', lw=2, label='Linear fit')
ax.legend()
ax.set_title('Scatter with Trend Line')
plt.close()Konfidenzbänder mit fill_between schattieren
ax.fill_between(x, y_lower, y_upper) füllt den Bereich zwischen zwei Kurven. Dies wird häufig verwendet, um Konfidenzintervalle um eine Mittelwertlinie, Standardabweichungsbänder oder Min-/Max-Bereiche darzustellen. Übergeben Sie alpha, um die Schattierung halbtransparent zu machen, sodass die darunterliegenden Daten sichtbar bleiben.
x_range = np.linspace(0, 2 * np.pi, 100)
mean = np.sin(x_range)
upper = mean + 0.2
lower = mean - 0.2
fig, ax = plt.subplots(figsize=(7, 4))
ax.plot(x_range, mean, color='steelblue', lw=2, label='Mean')
ax.fill_between(x_range, lower, upper,
color='steelblue', alpha=0.2, label='±0.2 band')
ax.legend()
ax.set_title('Line with Confidence Band')
plt.close()Achsengrenzen und Gitternetzlinien
Steuern Sie den sichtbaren Bereich mit ax.set_xlim(min, max) und ax.set_ylim(min, max). Aktivieren Sie Gitternetzlinien mit ax.grid(True). Passen Sie das Gitternetz mit Schlüsselwortargumenten an: linestyle, linewidth und alpha. Ein dezentes Gitternetz mit alpha=0.3 erleichtert das Ablesen genauer Werte, ohne das Diagramm zu überladen. Rufen Sie ax.set_axisbelow(True) auf, damit das Gitternetz hinter den Datenpunkten gezeichnet wird.
fig, ax = plt.subplots(figsize=(7, 4))
ax.plot(x, np.sin(x), 'b-', lw=2)
ax.set_xlim(0, 2 * np.pi)
ax.set_ylim(-1.2, 1.2)
ax.grid(True, linestyle='--', alpha=0.5)
ax.set_axisbelow(True) # grid behind data
ax.set_title('Sine with Grid')
plt.close()Alpha und Überlagerungen
Wenn sich in einem Bereich eines Streudiagramms viele Datenpunkte überlagern, werden einzelne Punkte unsichtbar – dies wird als Überlagerung bezeichnet. Die einfachste Lösung besteht darin, die Deckkraft mit alpha zu verringern (0.0 = vollständig transparent, 1.0 = vollständig deckend). Setzen Sie alpha=0.3 oder einen niedrigeren Wert, sodass dichte Bereiche dunkler erscheinen, weil sich mehrere halbtransparente Punkte überlagern, während dünn besetzte Bereiche hell bleiben. Für sehr große Datensätze mit Millionen von Punkten sollten Sie stattdessen Hexbin-Plots oder Kerndichteschätzungen in Betracht ziehen.
np.random.seed(1)
x_dense = np.random.randn(1000)
y_dense = np.random.randn(1000)
fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(10, 4))
# Without alpha: overplotting hides density
ax1.scatter(x_dense, y_dense, s=10)
ax1.set_title('No alpha (overplotted)')
# With alpha: density visible
ax2.scatter(x_dense, y_dense, s=10, alpha=0.2)
ax2.set_title('alpha=0.2 (density visible)')
plt.tight_layout()
plt.close()Kurze Überprüfung
Testen Sie Ihr Verständnis von Linien- und Streudiagrammen in Matplotlib aus dieser Lektion.
Zusammenfassung der Lektion
In dieser Lektion haben Sie gelernt: ax.plot() erstellt Liniendiagramme mit vollständiger Kontrolle über Farbe, Linienstil und Marker; ax.scatter() erstellt Streudiagramme mit individueller Farbe und Größe pro Punkt über c und s; ax.fill_between() fügt Konfidenzbänder hinzu; und ax.grid() ergänzt Gitternetzlinien zur besseren Lesbarkeit. Als Nächstes erstellen wir Balkendiagramme und Histogramme, um kategoriale Daten und Verteilungen zu visualisieren.
Lerne Python mit einem KI-Tutor — kostenlos
Schreibe und führe echten Code in deinem Browser aus, bekomme sofortige Hilfe von einem 24/7 KI-Tutor und setze dein Lernen im Web oder in der App fort.
- Kurse
- 30
- Lektionen
- 120
Häufig gestellte Fragen
Ist die Lektion „Linien- und Streudiagramme“ kostenlos?
Ja — der vollständige Text von „Linien- und Streudiagramme“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Pandas & NumPy Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Pandas & NumPy Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Linien- und Streudiagramme“?
Stellen Sie kontinuierliche Daten mit ax.plot() und diskrete Punkte mit ax.scatter() dar und steuern Sie Farbe, Marker und Linienart. Du übst Pandas & NumPy Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Pandas & NumPy Academy zu starten?
Keine Vorkenntnisse erforderlich. Pandas & NumPy Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 4.
Wie lange dauert die Lektion „Linien- und Streudiagramme“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Pandas & NumPy Academy-Lektion Code schreiben und ausführen?
Ja. Jede Pandas & NumPy Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Architektur von Figure und Axes
- Linien- und Streudiagramme
- Balkendiagramme und Histogramme
- Beschriftungen, Titel und Speichern von Abbildungen