Matplotlib-Funktion plot()


Matplotlib-Referenzdokumentation

plot()Sie ist die zentralste Funktion in Matplotlib und wird zum Zeichnen von Liniendiagrammen verwendet.

Sie erstellt Linien durch Verbinden der angegebenen x- und y-Koordinatenpunkte und unterstützt die Anpassung von Farbe, Linienstil, Marker und Linienbreite.

Funktionsdefinition

pyplot-Schnittstelle

matplotlib.pyplot.plot(*args, scalex=True, scaley=True, data=None, **kwargs)

Axes-Schnittstelle

Axes.plot(*args, scalex=True, scaley=True, data=None, **kwargs)

Parameterbeschreibung

ParameterTypeBeschreibung
*argsVariable ArgumenteUnterstützt mehrere Aufrufkonventionen: plot(y), plot(x, y), plot(x, y, 'fmt'), plot(x1, y1, 'fmt1', x2, y2, 'fmt2', ...)
scalex / scaleyboolOb die x/y-Achsen automatisch an die Daten angepasst werden sollen; Standard ist True
dataIndizierbares ObjektFalls angegeben, können Strings als Argumente verwendet werden, um auf Datenspalten darin zu verweisen.
color oder ccolorLinienfarbe, z. B. 'red', '#ff0000', 'tab:blue'
linestyle oder lsstrLinienstil: '-' (durchgezogen), '--' (gestrichelt), '-.' (Strich-Punkt), ':' (gepunktet), '' (keine Linie)
linewidth oder lwfloatLinienbreite, Standardwert ungefähr 1.5
markerstrDatenpunktmarker: '.', 'o', 's', '^', '*', '+' (Pluszeichen), 'x', usw.
markersize oder msfloatMarkergröße
labelstrLegendenbezeichnung, verwendet mit legend()
AlphafloatTransparenz, von 0 (vollständig transparent) bis 1 (vollständig deckend)
zorderfloatEbenenreihenfolge, je größer der Wert, desto höher wird gezeichnet

Der fmt-Format-String besteht aus drei Teilen:'[Color][Marker][Line Style]'wie zum Beispiel'ro--'steht für Rot, kreisförmigen Marker, gestrichelte Linie. Die Reihenfolge der Teile ist beliebig.

Gängige Farbabkürzungen

ZeichenFarbeZeichenFarbe
'b'Blau'r'Rot
'g'Grün'c'Cyan
'm'Magenta'y'Yellow
'k'Schwarz'w'White

Anwendungsbeispiele

Beispiel 1: Das einfachste Liniendiagramm

Wenn nur y-Werte übergeben werden, verwendet x automatisch Indizes beginnend bei 0.

Beispiel

import matplotlib.pyplot as plt
import numpy as np

# 50 Datenpunkte zwischen 0-10 generieren
x = np.linspace(0, 10, 50)
y = np.sin(x)  # Sinusfunktion

# Einfachster Aufruf: x, y
plt.plot(x, y)

plt.title('Einfaches Liniendiagramm')
plt.xlabel('x')
plt.ylabel('sin(x)')
plt.grid(True, alpha=0.3)
plt.show()

Beispiel 2: Mehrere Kurven + Format-String

Zeichnen Sie mehrere Kurven im selben Plot mit unterschiedlichen Farben, Linienstilen und Markern.

Beispiel

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 10, 50)
y1 = np.sin(x)
y2 = np.cos(x)
y3 = np.sin(x) * np.exp(-x / 3)  # Gedämpfte Sinusfunktion

# Mehrere Kurven, jede mit einem anderen Format
plt.plot(x, y1, 'b-o', label='sin(x)')           # Blaue durchgezogene Linie + Kreis-Marker
plt.plot(x, y2, 'r--s', label='cos(x)')          # Rote gestrichelte Linie + Quadrat-Marker
plt.plot(x, y3, 'g-.^', label='gedämpfte sin(x)')   # Grüne Strichpunktlinie + Dreieck-Marker

plt.title('Mehrere Linien mit unterschiedlichen Stilen')
plt.xlabel('x')
plt.ylabel('y')
plt.legend()
plt.grid(True, alpha=0.3)
plt.show()

Beispiel 3: Stil mit Schlüsselwortargumenten anpassen

Verwenden Sie Schlüsselwortargumente für eine feinere Kontrolle über das Aussehen der Linie.

Beispiel

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 2 * np.pi, 100)

fig, ax = plt.subplots(figsize=(8, 4), layout='constrained')

# Verwenden Sie Schlüsselwortargumente anstelle eines Format-Strings, besser lesbar
ax.plot(x, np.sin(x),
        color='steelblue',        # Farbname
        linestyle='-',            # Durchgezogene Linie
        linewidth=2.5,            # Linienbreite
        marker='o',               # Kreismarker
        markersize=4,             # Markergröße
        markerfacecolor='red',    # Marker-Füllfarbe
        markeredgecolor='black',  # Marker-Randfarbe
        markeredgewidth=0.5,      # Marker-Randbreite
        alpha=0.8,                # Gesamttransparenz
        label='sin(x)')

# Vergleich: gestrichelte Linie ohne Marker
ax.plot(x, np.cos(x),
        color='#ff6600',          # Hexadezimalfarbe
        linestyle='--',
        linewidth=2,
        label='cos(x)')

ax.set_title('Benutzerdefinierte Linienstile', fontsize=14)
ax.set_xlabel('x (radians)')
ax.set_ylabel('Amplitude')
ax.legend(loc='upper right')
ax.grid(True, alpha=0.2)
plt.show()
print("Beispiel: benutzerdefinierter Plot angezeigt")

Beispiel 4: Verwendung des data-Parameters (DataFrame-Unterstützung)

Wenn es sich bei den Daten um ein dict oder pandas DataFrame handelt, können String-Spaltennamen verwendet werden.

Beispiel

import matplotlib.pyplot as plt
import numpy as np

# Daten als Dictionary organisieren
data = {
    'time': np.arange(0, 10, 0.5),
    'voltage': np.sin(np.arange(0, 10, 0.5)) * 5 + 10,
    'current': np.cos(np.arange(0, 10, 0.5)) * 2 + 5,
}

fig, ax = plt.subplots(layout='constrained')

# Referenzdaten über den data-Parameter + String-Spaltennamen
ax.plot('time', 'voltage', 'b-', data=data, label='Spannung (V)')
ax.plot('time', 'current', 'r--', data=data, label='Strom (A)')

ax.set_title('Verwendung des data-Parameters mit Spaltennamen')
ax.set_xlabel('Zeit (s)')
ax.set_ylabel('Wert')
ax.legend()
ax.grid(True, alpha=0.3)
plt.show()

Beispiel 5: Aufruf auf einem Axes-Objekt (empfohlener Ansatz)

Die Verwendung der objektorientierten Axes-Schnittstelle ist in Szenarien mit mehreren Subplots übersichtlicher.

Beispiel

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 10, 100)

# Zwei nebeneinanderliegende Subplots erstellen
fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(10, 4),
                                layout='constrained')

# Linker Subplot: mathematische Funktion
ax1.plot(x, np.sin(x), label='sin(x)')
ax1.plot(x, np.cos(x), label='cos(x)')
ax1.set_title('Mathematische Funktionen')
ax1.legend()
ax1.grid(True, alpha=0.3)

# Rechter Subplot: Datentrend
data = np.random.randn(100).cumsum()  # Zufällige Irrfahrt
ax2.plot(data, color='teal', linewidth=1.5)
ax2.set_title('Zufällige Irrfahrt (kumulative Summe)')
ax2.set_xlabel('Schritt')
ax2.set_ylabel('Position')
ax2.grid(True, alpha=0.3)

plt.show()

FAQ

Reihenfolge von x und y in plot()

Der Standardaufruf istplot(x, y), x steht zuerst, y folgt danach.

Wenn nur ein Array übergeben wird, z. B.plot(y), dann wird x automatisch alsrange(0, len(y))。

Wie zeichnet man unterbrochene Liniensegmente?

Bei Daten, die NaN enthalten, unterbricht plot() die Linie automatisch bei NaN, was zum Zeichnen von segmentierten Linien verwendet werden kann.

Können der fmt-String und Schlüsselwortargumente zusammen verwendet werden?

Ja, Schlüsselwortargumente überschreiben die entsprechenden Einstellungen im fmt-String. Zum Beispielplot(x, y, 'ro', color='blue')Hier kommt marker='o' aus fmt, aber color wird zu blue überschrieben.


Matplotlib-Referenzdokumentation

Andere Erweiterungen