Erstellen benutzerdefinierter Legenden #

Individuelle Legenden Stück für Stück zusammenstellen.

Notiz

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 gezeichneten Daten verknüpft ist. Angenommen, Sie haben 10 Linien gezeichnet, möchten aber nicht, dass für jede Linie ein Legendenelement angezeigt wird. Wenn Sie einfach die Linien zeichnen und aufrufen ax.legend(), erhalten Sie Folgendes:

import matplotlib as mpl
from matplotlib import cycler
import matplotlib.pyplot as plt
import numpy as np

# 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)
ax.legend()
benutzerdefinierte Legenden
No artists with labels found to put in legend.  Note that artists whose label start with an underscore are ignored when legend() is called with no argument.

<matplotlib.legend.Legend object at 0x7f2cf9d80c40>

Beachten Sie, dass keine Legendeneinträge erstellt wurden. In diesem Fall können wir eine Legende mit Matplotlib-Objekten erstellen, die nicht explizit an die gezeichneten Daten gebunden sind. Zum Beispiel:

from matplotlib.lines import Line2D
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)]

fig, ax = plt.subplots()
lines = ax.plot(data)
ax.legend(custom_lines, ['Cold', 'Medium', 'Hot'])
benutzerdefinierte Legenden
<matplotlib.legend.Legend object at 0x7f2cfaadfac0>

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.patches import Patch
from matplotlib.lines import Line2D

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()
benutzerdefinierte Legenden

Gesamtlaufzeit des Skripts: ( 0 Minuten 1.610 Sekunden)

Galerie generiert von Sphinx-Gallery