Heim >Backend-Entwicklung >Python-Tutorial >Wie positioniere ich eine Matplotlib-Legende außerhalb des Plotbereichs und passe ihre Größe an?

Wie positioniere ich eine Matplotlib-Legende außerhalb des Plotbereichs und passe ihre Größe an?

DDD
DDDOriginal
2024-12-29 00:51:10267Durchsuche

How to Position a Matplotlib Legend Outside the Plot Area and Customize its Size?

So positionieren Sie die Legende außerhalb des Handlungsbereichs

Problem:

Sie möchten Erstellen Sie mehrere Plots in einer einzelnen Figur, aber Sie müssen die Legende außerhalb des Plotbereichs positionieren. Darüber hinaus möchten Sie die Größe der Legende minimieren, indem Sie die Schriftgröße reduzieren.

Lösung:

1. Verwendung von bbox_to_anchor:

Mit dem Schlüsselwortargument bbox_to_anchor können Sie die Position des Legendenfelds relativ zu den Plotachsen angeben. Indem Sie bbox_to_anchor auf (1.1, 1.05) setzen, können Sie die Legende leicht über die Achsengrenzen hinaus verschieben:

ax.legend(bbox_to_anchor=(1.1, 1.05))

2. Verkleinern des Plotbereichs:

Eine andere Methode besteht darin, die Breite oder Höhe des aktuellen Plots zu verkleinern und die Legende entsprechend zu positionieren. Um beispielsweise die Breite des Diagramms um 20 % zu verkleinern und die Legende außerhalb der Achse auf der rechten Seite zu platzieren:

# Shrink current axis by 20%
box = ax.get_position()
ax.set_position([box.x0, box.y0, box.width * 0.8, box.height])

# Put a legend to the right of the current axis
ax.legend(loc='center left', bbox_to_anchor=(1, 0.5))

3. Reduzieren der Schriftgröße der Legende:

Um die Größe des Legendenfelds zu reduzieren, können Sie den Parameter „fontsize“ in der Methode legend() verwenden:

ax.legend(fontsize=8)

4. Alternative Methoden:

  • loc-Parameter: Mit dem loc-Parameter können Sie die Position der Legende innerhalb des Plots angeben. Indem Sie loc auf die obere Mitte oder die untere Mitte einstellen, können Sie die Legende an den oberen oder unteren Rand des Diagramms verschieben.
  • ncol-Parameter: Der ncol-Parameter steuert die Anzahl der Spalten in der Legende . Durch die Angabe weiterer Spalten können Sie die Legende ausdehnen und ihre Gesamthöhe verringern.
  • Fancybox- und Shadow-Parameter: Die Fancybox- und Shadow-Parameter können verwendet werden, um der Legende ästhetische Effekte hinzuzufügen. wie abgerundete Ecken und ein Schlagschatten.

Weitere Informationen zum Anpassen von Legenden finden Sie in der Matplotlib-Dokumentation: https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.legend.html

Das obige ist der detaillierte Inhalt vonWie positioniere ich eine Matplotlib-Legende außerhalb des Plotbereichs und passe ihre Größe an?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn