Hinweis
Zum Ende springen, um den vollständigen Beispielcode herunterzuladen.
Benutzerdefinierte Legenden erstellen#
Benutzerdefinierte Legenden Stück für Stück erstellen.
Hinweis
Weitere Informationen zum Erstellen und Anpassen von Legenden finden Sie auf den folgenden Seiten
Manchmal möchten Sie keine Legende, die explizit mit den von Ihnen geplotteten Daten verknüpft ist. Wenn Sie beispielsweise 10 Linien geplottet haben, aber für jede kein Legenden-Element anzeigen möchten. Wenn Sie einfach die Linien plotten und ax.legend() aufrufen, erhalten Sie Folgendes:
import matplotlib.pyplot as plt
import numpy as np
import matplotlib as mpl
from matplotlib import cycler
# Fixing random state for reproducibility
np.random.seed(19680801)
N = 10
data = (np.geomspace(1, 10, 100) + np.random.randn(N, 100)).T
cmap = plt.cm.coolwarm
mpl.rcParams['axes.prop_cycle'] = cycler(color=cmap(np.linspace(0, 1, N)))
fig, ax = plt.subplots()
lines = ax.plot(data)

Da die Daten keine Labels haben, müssen wir beim Erstellen einer Legende die Symbole und Labels definieren. In diesem Fall können wir eine Legende mit Matplotlib-Objekten zusammenstellen, die nicht explizit mit den geplotteten Daten verknüpft sind. Zum Beispiel:

Es gibt viele andere Matplotlib-Objekte, die auf diese Weise verwendet werden können. Im folgenden Code haben wir einige gängige aufgelistet.
from matplotlib.lines import Line2D
from matplotlib.patches import Patch
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')]
# Create the figure
fig, ax = plt.subplots()
ax.legend(handles=legend_elements, loc='center')
plt.show()

Gesamtlaufzeit des Skripts: (0 Minuten 3,027 Sekunden)