„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie kann eine Cut-off-Legende in Matplotlib verhindert und die Datensichtbarkeit aufrechterhalten werden?

Wie kann eine Cut-off-Legende in Matplotlib verhindert und die Datensichtbarkeit aufrechterhalten werden?

Veröffentlicht am 02.11.2024
Durchsuche:973

How to Prevent Cut-off Legend in Matplotlib and Maintain Data Visibility?

Adressieren der abgeschnittenen Legende in Matplotlib durch Ändern der Größe des Abbildungsrahmens

In Matplotlib führt das Verschieben der Legende außerhalb der Plotachse häufig dazu, dass sie durch den Abbildungsrahmen abgeschnitten wird. Obwohl als Lösung eine Verkleinerung der Achse vorgeschlagen wurde, verringert sich dadurch die Sichtbarkeit der Daten, insbesondere bei der Darstellung komplexer Diagramme mit zahlreichen Legendeneinträgen.

Ein effektiverer Ansatz, wie in der Antwort von Benjamin Root auf der Matplotlib-Mailingliste hervorgehoben, beinhaltet Ändern des Savefig-Aufrufs, um die Legende als zusätzlichen Künstler einzubinden:

fig.savefig('samplefigure', bbox_extra_artists=(lgd,), bbox_inches='tight')

Diese Methode, ähnlich Durch die Verwendung von „tight_layout“ kann Savefig die Legende bei der Berechnung der Größe des Figurenfelds berücksichtigen.

Das folgende erweiterte Codebeispiel demonstriert die Lösung:

import matplotlib.pyplot as plt
import numpy as np

plt.gcf().clear()
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')

Dies passt nun die Größe des Figurenfelds dynamisch an die Legende an und verhindert so deren Abschneiden, während die Datensichtbarkeit erhalten bleibt.

Freigabeerklärung Dieser Artikel wird unter folgender Adresse abgedruckt: 1729223656 Bei Verstößen wenden Sie sich bitte an [email protected], um ihn zu löschen
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3