Benutzerdefinierte Legenden zusammensetzen

MatplotlibMatplotlibBeginner
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

Die Python Matplotlib-Bibliothek bietet eine flexible Möglichkeit, Legenden in einem Diagramm zu erstellen und anzupassen. Legenden sind ein essentieller Bestandteil jedes Diagramms, da sie eine klare und prägnante Erklärung der im Diagramm dargestellten Daten liefern. In diesem Lab werden Sie durch den Prozess der Erstellung benutzerdefinierter Legenden mit Matplotlib-Objekten geführt.

VM-Tipps

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

Manchmal müssen Sie 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 Sie bei der Lernphase Probleme haben, können Sie Labby gerne fragen. Geben Sie nach der Sitzung Feedback, und wir werden das Problem für Sie prompt beheben.

Linien zeichnen

In diesem Schritt werden wir eine Reihe von Linien mit der Matplotlib-Bibliothek zeichnen. Zunächst erstellen wir einige zufällige Daten mit NumPy. Anschließend setzen wir den Farbzyklus mit der cycler-Funktion, um die Farbpalette anzugeben. Schließlich zeichnen wir die Daten mit der plot-Funktion und rufen legend() auf, um die Legende zu generieren.

import matplotlib.pyplot as plt
import numpy as np

## Setze den Zufallszustand für Wiederholbarkeit
np.random.seed(19680801)

## Erstelle zufällige Daten
N = 10
data = (np.geomspace(1, 10, 100) + np.random.randn(N, 100)).T

## Setze den Farbzyklus
cmap = plt.cm.coolwarm
plt.rcParams['axes.prop_cycle'] = cycler(color=cmap(np.linspace(0, 1, N)))

## Zeichne die Daten und generiere die Legende
fig, ax = plt.subplots()
lines = ax.plot(data)
ax.legend()

Benutzerdefinierte Legende erstellen

In diesem Schritt werden wir eine benutzerdefinierte Legende mit Matplotlib-Objekten erstellen. Zunächst importieren wir die Line2D-Klasse aus dem matplotlib.lines-Modul. Anschließend erstellen wir eine Liste von Line2D-Objekten mit benutzerdefinierten Attributen für Farbe, Breite und Bezeichnung. Schließlich zeichnen wir die Daten erneut mit der plot-Funktion und rufen legend() mit den benutzerdefinierten Linien und den entsprechenden Bezeichnungen auf.

## Importiere die Line2D-Klasse
from matplotlib.lines import Line2D

## Erstelle benutzerdefinierte Linien
custom_lines = [Line2D([0], [0], color=cmap(0.), lw=4),
                Line2D([0], [0], color=cmap(.5), lw=4),
                Line2D([0], [0], color=cmap(1.), lw=4)]

## Zeichne die Daten und generiere die benutzerdefinierte Legende
fig, ax = plt.subplots()
lines = ax.plot(data)
ax.legend(custom_lines, ['Cold', 'Medium', 'Hot'])

Benutzerdefinierte Legende mit verschiedenen Matplotlib-Objekten erstellen

In diesem Schritt werden wir eine benutzerdefinierte Legende mit verschiedenen Matplotlib-Objekten erstellen, darunter Line2D und Patch. Zunächst importieren wir die Patch-Klasse aus dem matplotlib.patches-Modul. Anschließend erstellen wir eine Liste von Line2D- und Patch-Objekten mit benutzerdefinierten Attributen. Schließlich rufen wir legend() mit den benutzerdefinierten Objekten und den entsprechenden Bezeichnungen auf.

## Importiere die Line2D- und Patch-Klassen
from matplotlib.lines import Line2D
from matplotlib.patches import Patch

## Erstelle die Legendelemente
legend_elements = [Line2D([0], [0], color='b', lw=4, label='Line'),
                   Line2D([0], [0], marker='o', color='w', label='Scatter',
                          markerfacecolor='g', markersize=15),
                   Patch(facecolor='orange', edgecolor='r',
                         label='Color Patch')]

## Zeichne die Daten und generiere die benutzerdefinierte Legende
fig, ax = plt.subplots()
ax.legend(handles=legend_elements, loc='center')

Zusammenfassung

In diesem Lab haben wir gelernt, wie man benutzerdefinierte Legenden mit Matplotlib-Objekten erstellt. Wir haben begonnen, indem wir eine Reihe von Linien gezeichnet und eine Standardlegende generiert haben. Anschließend haben wir eine benutzerdefinierte Legende mit Line2D-Objekten mit benutzerdefinierten Attributen zusammengestellt. Schließlich haben wir eine benutzerdefinierte Legende mit verschiedenen Matplotlib-Objekten erstellt, darunter Line2D und Patch. Indem wir benutzerdefinierte Legenden verwenden, können wir eine klare und prägnante Erklärung der im Diagramm dargestellten Daten geben.