Heim > Backend-Entwicklung > Python-Tutorial > Dynamisch erweiterbare Figurenbox für Legenden außerhalb der Achsen: Eine Lösung

Dynamisch erweiterbare Figurenbox für Legenden außerhalb der Achsen: Eine Lösung

Linda Hamilton
Freigeben: 2024-10-18 12:04:03
Original
244 Leute haben es durchsucht

Dynamically Expanding Figure Box for Legends Outside Axes: A Solution

Dynamische Größenänderung des Figurenfelds für Legenden

Beim Platzieren von Legenden außerhalb der Plotachsen in Matplotlib können sie durch das Figurenfeld abgeschnitten werden . Dieses Problem tritt auf, wenn die Legendenlänge die Achsengröße überschreitet.

Vermeidung der Achsenverkleinerung

Im Gegensatz zu anderen Lösungen wird die Vermeidung der Achsenverkleinerung bevorzugt, um die Datensichtbarkeit aufrechtzuerhalten. Das Verkleinern der Achsen verringert die Lesbarkeit der Daten, insbesondere bei komplexen Diagrammen mit umfangreichen Legenden.

Dynamische Erweiterung des Figurenfelds

Um das Figurenfeld dynamisch zu erweitern, um die Legende aufzunehmen, Passen Sie den savefig-Aufruf wie folgt an:

fig.savefig('samplefigure', bbox_extra_artists=(lgd,), bbox_inches='tight')
Nach dem Login kopieren

wobei bbox_extra_artists zusätzliche Künstler (in diesem Fall die Legende) berücksichtigt, wenn die Größe des Begrenzungsrahmens bestimmt wird.

Beispielcode

Der folgende Code generiert einen Plot mit einer Legende außerhalb der Achsen und passt die Größe des Figurenfelds mithilfe von bbox_extra_artists automatisch an:

import matplotlib.pyplot as plt
import numpy as np

x = np.arange(-2*np.pi, 2*np.pi, 0.1)
fig = plt.figure(1)
ax = fig.add_subplot(111)
ax.plot(x, np.sin(x), label='Sine')
ax.plot(x, np.cos(x), label='Cosine')
ax.plot(x, np.arctan(x), label='Inverse tan')
handles, labels = ax.get_legend_handles_labels()
lgd = ax.legend(handles, labels, loc='upper center', bbox_to_anchor=(0.5,-0.1))
text = ax.text(-0.2,1.05, "Aribitrary text", transform=ax.transAxes)
ax.set_title("Trigonometry")
ax.grid('on')
fig.savefig('samplefigure', bbox_extra_artists=(lgd,text), bbox_inches='tight')
Nach dem Login kopieren

Dieser Code führt zu einem Plot mit der Legende außerhalb der Achsen. und das Figurenfeld wird dynamisch an die Legendengröße angepasst.

Fazit

Durch die Verwendung des bbox_extra_artists-Parameters in savefig können Sie das Figurenfeld dynamisch erweitern, um dies sicherzustellen Legenden außerhalb der Achsen werden nicht abgeschnitten. Dieser Ansatz bietet eine praktische und effektive Lösung ohne die Nachteile des Achsenschrumpfens.

Das obige ist der detaillierte Inhalt vonDynamisch erweiterbare Figurenbox für Legenden außerhalb der Achsen: Eine Lösung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage