Matplotlib: Linien-Plots anpassen

MatplotlibBeginner
Jetzt üben

Einführung

Matplotlib ist eine leistungsstarke Python-Bibliothek zur Erstellung statischer, animierter und interaktiver Visualisierungen. Während die Erstellung eines einfachen Plots unkompliziert ist, ist die Anpassung entscheidend, um Ihre Daten klar, verständlich und visuell ansprechend zu gestalten.

In diesem Lab beginnen Sie mit einem einfachen Liniendiagramm und passen es schrittweise an. Sie lernen, wie Sie die Linienfarbe ändern, Markierungen zu Datenpunkten hinzufügen, den Linienstil modifizieren, Ihrem Plot einen Titel hinzufügen und die Achsenlimits anpassen.

Da diese Laborumgebung eine WebIDE verwendet, können wir Plots nicht in einem separaten GUI-Fenster anzeigen. Stattdessen speichern wir jeden Plot als Bilddatei mit plt.savefig(). Sie können das generierte Bild dann direkt in der IDE anzeigen.

Legen wir los!

Plot-Linie mit benutzerdefinierter Farbe mit plt.plot(color='red')

In diesem Schritt lernen Sie, wie Sie die Farbe einer Linie in Ihrem Plot ändern. Standardmäßig durchläuft Matplotlib einen vordefinierten Satz von Farben. Sie können jedoch ganz einfach eine Farbe Ihrer Wahl angeben, indem Sie den Parameter color in der Funktion plt.plot() verwenden.

Zuerst erstellen wir einen einfachen Plot einer Sinuswelle. Wir verwenden NumPy, um die Datenpunkte zu generieren.

Öffnen Sie die Datei main.py im Verzeichnis ~/project im Dateiexplorer auf der linken Seite. Ersetzen Sie deren Inhalt durch den folgenden Code. Dieser Code wird eine Sinuswelle plotten und sie rot färben.

import matplotlib.pyplot as plt
import numpy as np

## Generate data for the plot
x = np.arange(0, 10, 0.1)
y = np.sin(x)

## Plot the data with a custom color
plt.plot(x, y, color='red')

## Save the plot to a file
plt.savefig('/home/labex/project/plot_color.png')

print("Plot saved as plot_color.png")

Nachdem Sie die Datei main.py aktualisiert haben, speichern Sie sie. Führen Sie nun das Skript im Terminal am unteren Rand der IDE aus:

python3 main.py

Sie sollten die folgende Ausgabe im Terminal sehen:

Plot saved as plot_color.png

Eine neue Datei namens plot_color.png wird im Verzeichnis ~/project erscheinen. Doppelklicken Sie darauf, um Ihren ersten angepassten Plot zu öffnen und anzuzeigen. Sie werden eine rote Sinuswelle sehen.

Plot color

Markierungen hinzufügen mit plt.plot(marker='o')

In diesem Schritt fügen Sie Ihren Datenpunkten Marker hinzu. Marker sind nützlich, um den genauen Ort jedes Datenpunkts auf der Linie hervorzuheben, was besonders hilfreich sein kann, wenn die Datenpunkte spärlich sind.

Sie können Marker mit dem Parameter marker in der Funktion plt.plot() hinzufügen. Es stehen viele Markerstile zur Verfügung, wie z. B. 'o' für Kreise, 'x' für Kreuze und '*' für Sterne.

Lassen Sie uns die Datei main.py ändern, um Kreismarker zu unserem Plot hinzuzufügen. Wir werden auch den Ausgabedateinamen in plot_marker.png ändern, um unseren Fortschritt aus dem vorherigen Schritt beizubehalten.

Aktualisieren Sie die Datei main.py mit dem folgenden Code:

import matplotlib.pyplot as plt
import numpy as np

## Generate data for the plot
x = np.arange(0, 10, 0.1)
y = np.sin(x)

## Plot the data with a custom color and marker
plt.plot(x, y, color='red', marker='o')

## Save the plot to a new file
plt.savefig('/home/labex/project/plot_marker.png')

print("Plot saved as plot_marker.png")

Speichern Sie die Datei und führen Sie das Skript erneut im Terminal aus:

python3 main.py

Das Terminal zeigt diese Ausgabe an:

Plot saved as plot_marker.png

Suchen Sie nun die neue Datei plot_marker.png im Dateiexplorer und doppelklicken Sie darauf. Sie werden sehen, dass die rote Linie nun kleine Kreise an jedem Datenpunkt aufweist.

Plot marker

Linienstil festlegen mit plt.plot(linestyle='--')

In diesem Schritt lernen Sie, wie Sie den Stil der Linie selbst ändern. Standardmäßig ist es eine durchgezogene Linie, aber Sie können sie in eine gestrichelte Linie, eine gepunktete Linie oder andere ändern, um zwischen mehreren Linien im selben Plot zu unterscheiden oder einfach aus ästhetischen Gründen.

Dies geschieht mit dem Parameter linestyle (oder seiner Kurzform ls). Gängige Stile sind '--' für gestrichelt, ':' für gepunktet und '-.' für Strichpunkt.

Lassen Sie uns unseren Plot aktualisieren, um eine gestrichelte Linie zu verwenden. Ändern Sie die Datei main.py wie unten gezeigt. Wir werden auch den Ausgabedateinamen in plot_linestyle.png ändern.

import matplotlib.pyplot as plt
import numpy as np

## Generate data for the plot
x = np.arange(0, 10, 0.1)
y = np.sin(x)

## Plot the data with custom color, marker, and line style
plt.plot(x, y, color='red', marker='o', linestyle='--')

## Save the plot to a new file
plt.savefig('/home/labex/project/plot_linestyle.png')

print("Plot saved as plot_linestyle.png")

Speichern Sie die Änderungen und führen Sie das Skript in Ihrem Terminal aus:

python3 main.py

Sie sehen die Bestätigungsnachricht:

Plot saved as plot_linestyle.png

Öffnen Sie die neu erstellte Datei plot_linestyle.png. Sie werden feststellen, dass die Linie, die die Marker verbindet, nun gestrichelt anstelle von durchgezogen ist.

Plot linestyle

Titel hinzufügen mit plt.title()

Ein Plot ohne Titel kann mehrdeutig sein. Es ist entscheidend, Ihren Plots einen beschreibenden Titel zu geben, damit die Betrachter sofort verstehen, was der Plot darstellt. In Matplotlib können Sie einen Titel mit der Funktion plt.title() hinzufügen.

In diesem Schritt fügen Sie Ihrem Plot den Titel "Sine Wave" hinzu. Diese Funktion wird aufgerufen, bevor die Abbildung gespeichert wird.

Ändern Sie Ihre main.py-Datei, um den plt.title()-Aufruf einzufügen. Die neue Ausgabedatei wird plot_title.png sein.

import matplotlib.pyplot as plt
import numpy as np

## Generate data for the plot
x = np.arange(0, 10, 0.1)
y = np.sin(x)

## Plot the data with customizations
plt.plot(x, y, color='red', marker='o', linestyle='--')

## Add a title to the plot
plt.title('Sine Wave')

## Save the plot to a new file
plt.savefig('/home/labex/project/plot_title.png')

print("Plot saved as plot_title.png")

Speichern Sie die Datei und führen Sie das Skript aus:

python3 main.py

Die Ausgabe wird sein:

Plot saved as plot_title.png

Öffnen Sie plot_title.png, um Ihren Plot anzuzeigen. Er sollte nun den Titel "Sine Wave" oben angezeigt haben.

Plot title

Achsenlimits anpassen mit plt.xlim() und plt.ylim()

Manchmal möchten Sie sich auf einen bestimmten Bereich Ihres Plots konzentrieren oder etwas Abstand um die Daten herum hinzufügen. Sie können den Bereich der x- und y-Achsen mit den Funktionen plt.xlim() bzw. plt.ylim() steuern.

In diesem letzten Schritt passen wir die Achsen an, um in einen Teil der Sinuswelle "hineinzuzoomen". Wir setzen die x-Achse auf den Bereich von 0 bis 5 und die y-Achse auf -1,5 bis 1,5. Dies gibt unserem Plot etwas vertikalen Abstand.

Aktualisieren Sie Ihre main.py-Datei mit der endgültigen Version des Codes. Die Ausgabe wird in plot_final.png gespeichert.

import matplotlib.pyplot as plt
import numpy as np

## Generate data for the plot
x = np.arange(0, 10, 0.1)
y = np.sin(x)

## Plot the data with customizations
plt.plot(x, y, color='red', marker='o', linestyle='--')

## Add a title
plt.title('Sine Wave')

## Adjust the axis limits
plt.xlim(0, 5)
plt.ylim(-1.5, 1.5)

## Save the final plot to a file
plt.savefig('/home/labex/project/plot_final.png')

print("Plot saved as plot_final.png")

Speichern Sie die Datei und führen Sie das Skript zum letzten Mal aus:

python3 main.py

Sie erhalten die endgültige Bestätigung:

Plot saved as plot_final.png

Öffnen Sie nun plot_final.png. Vergleichen Sie sie mit den vorherigen Plots. Sie werden sehen, dass die x-Achse nun bei 5 endet und aufgrund der neuen y-Achsenlimits mehr Platz über und unter der Sinuswelle vorhanden ist.

Plot final

Zusammenfassung

Herzlichen Glückwunsch zum Abschluss dieses Labs! Sie haben erfolgreich gelernt, wie Sie einen einfachen Matplotlib-Linienplot anpassen können, um ihn informativer und optisch ansprechender zu gestalten.

In diesem Lab haben Sie geübt:

  • Ändern der Linienfarbe mit dem Parameter color in plt.plot().
  • Hinzufügen von Datenpunktmarkierungen mit dem Parameter marker.
  • Festlegen des Linienstils mit dem Parameter linestyle.
  • Hinzufügen eines beschreibenden Titels mit der Funktion plt.title().
  • Anpassen der Achsenbereiche mit plt.xlim() und plt.ylim().

Dies sind grundlegende Fähigkeiten für die Erstellung von professionellen Plots für Datenanalyse und Präsentation. Experimentieren Sie gerne weiter, indem Sie verschiedene Farben, Markierungen und Linienstile ausprobieren oder Achsenbeschriftungen für die x- und y-Achsen mit plt.xlabel() und plt.ylabel() hinzufügen.