Grundlagen der Matplotlib-Visualisierung

PythonPythonBeginner
Jetzt üben

This tutorial is from open-source community. Access the source code

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab lernst du, wie du Matplotlib, eine Python-Bibliothek zur Erstellung von Visualisierungen, verwendest, um eine Figur zu erstellen und ihre Anatomie zu kommentieren. Du wirst lernen, wie du eine Figur erstellst, Daten plottest, Achsengrenzen setzt, Beschriftungen und Titel hinzufügst und die Figur mit Text und Markern kommentierst.

Tipps für die VM

Nachdem der VM-Start abgeschlossen ist, klicke in der oberen linken Ecke, um zur Registerkarte Notebook zu wechseln und Jupyter Notebook für die Übung zu nutzen.

Manchmal musst du einige Sekunden warten, bis Jupyter Notebook vollständig geladen ist. Die Validierung von Vorgängen kann aufgrund von Einschränkungen in Jupyter Notebook nicht automatisiert werden.

Wenn du bei der Lernphase Probleme hast, kannst du Labby gerne fragen. Gib nach der Sitzung Feedback, und wir werden das Problem für dich prompt beheben.

Bibliotheken importieren und Daten vorbereiten

Zunächst müssen wir die erforderlichen Bibliotheken importieren und einige Daten vorbereiten, um zu plottieren. In diesem Beispiel werden wir drei Sinuswellen mit zufälligem Rauschen darstellen.

import matplotlib.pyplot as plt
import numpy as np

## Set up data
np.random.seed(19680801)

X = np.linspace(0.5, 3.5, 100)
Y1 = 3+np.cos(X)
Y2 = 1+np.cos(1+X/0.75)/2
Y3 = np.random.uniform(Y1, Y2, len(X))

Figur erstellen und Achsen einrichten

Als nächstes werden wir eine Figur erstellen und die Achsen einrichten. Wir werden die Methode add_axes() verwenden, um eine neue Achsenmenge innerhalb der Figur zu erstellen. Wir werden auch Grenzen für die x- und y-Achsen setzen und Rasterlinien hinzufügen.

## Create figure and axes
fig = plt.figure(figsize=(7.5, 7.5))
ax = fig.add_axes([0.2, 0.17, 0.68, 0.7], aspect=1)

## Set limits and gridlines
ax.set_xlim(0, 4)
ax.set_ylim(0, 4)
ax.grid(linestyle="--", linewidth=0.5, color='.25', zorder=-10)

Die Daten plotten

Jetzt werden wir unsere Daten auf den gerade erstellten Achsen plotten. Wir werden die Methode plot() verwenden, um die drei Sinuswellen mit unterschiedlichen Farben und Linienbreiten zu plotten.

## Plot data
ax.plot(X, Y1, c='C0', lw=2.5, label="Blue signal", zorder=10)
ax.plot(X, Y2, c='C1', lw=2.5, label="Orange signal")
ax.plot(X[::3], Y3[::3], linewidth=0, markersize=9,
        marker='s', markerfacecolor='none', markeredgecolor='C4',
        markeredgewidth=2.5)

Beschriftungen und Titel hinzufügen

Wir werden nun Beschriftungen für die x- und y-Achsen hinzufügen und einen Titel für die Figur mit den Methoden set_xlabel(), set_ylabel() und set_title() setzen.

## Add labels and title
ax.set_xlabel("x-Achsenbeschriftung", fontsize=14)
ax.set_ylabel("y-Achsenbeschriftung", fontsize=14)
ax.set_title("Anatomie einer Figur", fontsize=20, verticalalignment='bottom')

Legende hinzufügen

Wir werden eine Legende zur Figur mit der Methode legend() hinzufügen. Wir werden auch die Position und die Schriftgröße der Legende angeben.

## Add legend
ax.legend(loc="upper right", fontsize=14)

Die Figur annotieren

Schließlich werden wir die Figur annotieren, um die Namen verschiedener Matplotlib-Elemente anzuzeigen, indem wir die Methoden text() und Circle() verwenden. Wir werden auch die Methode withStroke() verwenden, um einem Text und Markern einen weißen Umriss hinzuzufügen, um eine bessere Sichtbarkeit zu gewährleisten.

## Annotate the figure
from matplotlib.patches import Circle
from matplotlib.patheffects import withStroke

royal_blue = [0, 20/256, 82/256]

def annotate(x, y, text, code):
    ## Kreismarker
    c = Circle((x, y), radius=0.15, clip_on=False, zorder=10, linewidth=2.5,
               edgecolor=royal_blue + [0.6], facecolor='none',
               path_effects=[withStroke(linewidth=7, foreground='white')])
    ax.add_artist(c)

    ## Verwenden Sie path_effects als Hintergrund für die Texte
    ## Zeichnen Sie die path_effects und den farbigen Text separat, damit die
    ## path_effects andere Texte nicht abschneiden können
    for path_effects in [[withStroke(linewidth=7, foreground='white')], []]:
        color = 'white' if path_effects else royal_blue
        ax.text(x, y-0.2, text, zorder=100,
                ha='center', va='top', weight='bold', color=color,
                style='italic', fontfamily='Courier New',
                path_effects=path_effects)

        color = 'white' if path_effects else 'black'
        ax.text(x, y-0.33, code, zorder=100,
                ha='center', va='top', weight='normal', color=color,
                fontfamily='monospace', fontsize='medium',
                path_effects=path_effects)

annotate(3.5, -0.13, "Kleine Strichebezeichnung", "ax.xaxis.set_minor_formatter")
annotate(-0.03, 1.0, "Große Striche", "ax.yaxis.set_major_locator")
annotate(0.00, 3.75, "Kleine Striche", "ax.yaxis.set_minor_locator")
annotate(-0.15, 3.00, "Große Strichebezeichnung", "ax.yaxis.set_major_formatter")
annotate(1.68, -0.39, "x-Beschriftung", "ax.set_xlabel")
annotate(-0.38, 1.67, "y-Beschriftung", "ax.set_ylabel")
annotate(1.52, 4.15, "Titel", "ax.set_title")
annotate(1.75, 2.80, "Linie", "ax.plot")
annotate(2.25, 1.54, "Marker", "ax.scatter")
annotate(3.00, 3.00, "Raster", "ax.grid")
annotate(3.60, 3.58, "Legende", "ax.legend")
annotate(2.5, 0.55, "Achsen", "fig.subplots")
annotate(4, 4.5, "Figur", "plt.figure")
annotate(0.65, 0.01, "x-Achse", "ax.xaxis")
annotate(0, 0.36, "y-Achse", "ax.yaxis")
annotate(4.0, 0.7, "Rahmen", "ax.spines")

Zusammenfassung

In diesem Lab haben Sie gelernt, wie Sie Matplotlib verwenden, um eine Figur zu erstellen und ihre Anatomie zu annotieren. Sie haben gelernt, wie Sie eine Figur erstellen, Daten plotten, Achsengrenzen festlegen, Beschriftungen und Titel hinzufügen und die Figur mit Texten und Markern annotieren. Indem Sie die Schritte in diesem Lab befolgen, sollten Sie jetzt einen guten Überblick darüber haben, wie Sie Matplotlib in Python verwenden, um Figuren zu erstellen und zu annotieren.