Data Visualization

Matplotlib Legenden meistern: Zwei Methoden zur Anpassung der Linienstärke

Spread the love

Matplotlib ist eine leistungsstarke Python-Bibliothek zum Erstellen von Visualisierungen. Legenden sind unerlässlich für das Verständnis von Diagrammen, und die Anpassung ihres Aussehens verbessert die Lesbarkeit. Dieser Artikel zeigt zwei Methoden zur Anpassung der Linienbreiten in Matplotlib-Legenden.

Inhaltsverzeichnis

Direkte Einstellung der Linienbreite mit set_linewidth()

Die Methode set_linewidth() bietet präzise Kontrolle über einzelne Legendenlinien. Sie manipuliert direkt die legendHandles der Legende, die Line2D-Objekte sind.


import matplotlib.pyplot as plt

# Beispiel-Daten
x = [1, 2, 3, 4, 5]
y1 = [2, 4, 1, 3, 5]
y2 = [1, 3, 5, 2, 4]

# Erstellen des Diagramms
fig, ax = plt.subplots()
line1, = ax.plot(x, y1, label='Linie 1', linewidth=2)
line2, = ax.plot(x, y2, label='Linie 2', linewidth=1)

# Erstellen der Legende
legend = ax.legend()

# Zugriff und Änderung der Linienbreite
legend.legendHandles[0].set_linewidth(4)  # Linie 1 in der Legende
legend.legendHandles[1].set_linewidth(3)  # Linie 2 in der Legende

# Anzeigen des Diagramms
plt.show()

Dieser Code zeichnet zuerst Daten und greift dann über legend.legendHandles auf die Legenden-Handles zu. set_linewidth() passt die Breite jeder Linie an. legendHandles[0] bezieht sich auf die erste Linie usw.

Verwendung von matplotlib.pyplot.setp() für eine prägnante Änderung

matplotlib.pyplot.setp() bietet eine kompaktere Möglichkeit, mehrere Eigenschaften gleichzeitig zu ändern.


import matplotlib.pyplot as plt

# Beispiel-Daten (wie zuvor)
x = [1, 2, 3, 4, 5]
y1 = [2, 4, 1, 3, 5]
y2 = [1, 3, 5, 2, 4]

# Erstellen des Diagramms
fig, ax = plt.subplots()
line1, = ax.plot(x, y1, label='Linie 1', linewidth=2)
line2, = ax.plot(x, y2, label='Linie 2', linewidth=1)

# Erstellen der Legende
legend = ax.legend()

# Änderung der Linienbreite mit setp()
plt.setp(legend.legendHandles, 'linewidth', [4, 3])

# Anzeigen des Diagramms
plt.show()

plt.setp() setzt effizient die linewidth für alle Handles. [4, 3] gibt die Breite für jede Linie in der Reihenfolge ihres Auftretens an.

Häufig gestellte Fragen

F: Was ist, wenn ich mehr als zwei Linien habe?

A: Beide Methoden lassen sich leicht anpassen. Für set_linewidth() erweitern Sie die Indizierung. Für setp() stellen Sie sicher, dass die Liste der Linienbreiten der Anzahl der Legenden-Handles entspricht.

F: Kann ich andere Legenden-Eigenschaften ändern?

A: Ja, beide Methoden ändern Eigenschaften wie Farbe, Linienstil und Marker. Konsultieren Sie die Matplotlib-Dokumentation.

F: Welche Methode sollte ich wählen?

A: set_linewidth() bietet granulare Kontrolle für einzelne Linien. setp() ist prägnanter, um dieselbe Eigenschaft für alle Linien zu ändern. Wählen Sie je nach Bedarf und Programmierstil.

Dieser Artikel bietet zwei effektive Ansätze zur Verbesserung der Klarheit und der visuellen Wirkung der Matplotlib-Legende. Beziehen Sie sich auf die Matplotlib-Dokumentation für erweiterte Anpassungen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert