Data Visualization

Matplotlib Legenden meistern: Umfangreiche Anleitung zur Schriftgrößenkontrolle

Spread the love

Matplotlib ist eine leistungsstarke Python-Bibliothek zum Erstellen von Visualisierungen. Legenden sind für die Klarheit unerlässlich, und die Steuerung ihres Aussehens, insbesondere der Schriftgröße, ist entscheidend für eine effektive Kommunikation. Dieser Artikel untersucht verschiedene Methoden zum Anpassen der Schriftgrößen von Legenden in Ihren Matplotlib-Diagrammen, damit Sie visuell ansprechende und leicht verständliche Grafiken erstellen können.

Inhaltsverzeichnis

Globale Anpassung der Schriftgröße der Legende

Diese Methode ändert die Schriftgröße für alle Legenden in Ihrem Skript. Sie ist ideal, um konsistente Schriftgrößen über mehrere Diagramme hinweg beizubehalten. Dies erreichen Sie durch Modifizieren des rcParams-Wörterbuchs.


import matplotlib.pyplot as plt
import matplotlib as mpl

# Schriftgröße global einstellen
mpl.rcParams['legend.fontsize'] = 12

# Beispieldiagramm
plt.plot([1, 2, 3], [4, 5, 6], label='Linie 1')
plt.plot([1, 2, 3], [6, 4, 2], label='Linie 2')

# Legende hinzufügen
plt.legend()
plt.show()

Dies setzt die Schriftgröße der Legende für alle nachfolgenden Legenden in Ihrem Skript auf 12 Punkte. Denken Sie daran, dass diese Änderung alle Legenden global betrifft.

Lokale Steuerung der Schriftgröße der Legende

Für eine lokalisiertere Steuerung geben Sie die Schriftgröße direkt innerhalb der Funktion plt.legend() an. So können Sie verschiedene Schriftgrößen für einzelne Legenden festlegen.


import matplotlib.pyplot as plt

# Beispieldiagramm
plt.plot([1, 2, 3], [4, 5, 6], label='Linie 1')
plt.plot([1, 2, 3], [6, 4, 2], label='Linie 2')

# Legende mit angegebener Schriftgröße hinzufügen
plt.legend(fontsize=14)
plt.show()

Dies setzt die Schriftgröße speziell für diese Legende auf 14 Punkte. Dies bietet im Vergleich zur globalen rcParams-Methode eine größere Flexibilität.

Feinabgestimmte Anpassung der Legende

Für eine präzise Steuerung greifen Sie direkt auf das Legendenobjekt zu und ändern dessen Eigenschaften. Dies ermöglicht komplexere Anpassungen, die über die Schriftgröße hinausgehen.


import matplotlib.pyplot as plt

# Beispieldiagramm
plt.plot([1, 2, 3], [4, 5, 6], label='Linie 1')
plt.plot([1, 2, 3], [6, 4, 2], label='Linie 2')

# Legende hinzufügen
legend = plt.legend()

# Zugriff auf Legendentext und Festlegung der Schriftgröße
for text in legend.get_texts():
    text.set_fontsize(16)

plt.show()

Dies iteriert durch jeden Legendeneintrag und setzt dessen Schriftgröße einzeln. Nützlich für unterschiedliche Schriftgrößen innerhalb einer einzelnen Legende.

Fazit

Dieser Artikel präsentierte drei Methoden zum Anpassen der Schriftgrößen von Matplotlib-Legenden: globale Einstellungen (rcParams), lokale Steuerung (plt.legend(fontsize=...)) und feinabgestimmte Manipulation von Legendenobjekten. Wählen Sie die Methode, die am besten zu Ihren Bedürfnissen und Ihrem Programmierstil passt.

FAQ

F: Kann ich neben der Größe auch andere Schriftarteigenschaften anpassen?

A: Ja, ändern Sie Schriftfamilie, Stil, Gewicht usw. mithilfe ähnlicher Techniken. Erkunden Sie das Modul matplotlib.font_manager für weitere Details. Fügen Sie beispielsweise fontweight='bold' zu plt.legend() hinzu oder verwenden Sie text.set_fontweight() in der dritten Methode.

F: Meine Legende überlappt das Diagramm. Wie kann ich das beheben?

A: Verwenden Sie das Argument loc in plt.legend(), um die Position der Legende zu ändern, oder positionieren Sie sie manuell mit legend.set_bbox_to_anchor(). Erwägen Sie, die Diagrammgröße anzupassen oder Legendeneinträge zu reduzieren.

F: Meine Schriftgrößenänderungen werden nicht angewendet. Was ist falsch?

A: Stellen Sie sicher, dass plt.show() nach dem Festlegen der Schriftgröße aufgerufen wird. Konflikte mit Schriftkonfigurationen oder veraltete Matplotlib-Installationen können ebenfalls Probleme verursachen. Versuchen Sie, Ihren Kernel neu zu starten oder Matplotlib zu aktualisieren.

Schreibe einen Kommentar

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