Heim > Backend-Entwicklung > Python-Tutorial > Wie verhindere ich, dass Beschriftungen in Matplotlib-Plots abgeschnitten werden oder sich überlappen?

Wie verhindere ich, dass Beschriftungen in Matplotlib-Plots abgeschnitten werden oder sich überlappen?

Mary-Kate Olsen
Freigeben: 2024-11-07 07:28:03
Original
364 Leute haben es durchsucht

How do I prevent labels from being cut off or overlapping in matplotlib plots?

Abstand mit abgeschnittenen oder überlappenden Beschriftungen anpassen

Problem:

Bei Verwendung von matplotlib zum Plotten Bei Daten mit großen oder komplexen Beschriftungen können die Beschriftungen abgeschnitten sein oder sich mit den Achsen überlappen. Dies kann sowohl bei einzelnen Plots als auch bei Subplots auftreten.

Lösung:

Um den Abstand um die Beschriftungen anzupassen, verwenden Sie die Funktion plt.subplots_adjust(). Diese Funktion benötigt mehrere Argumente, darunter unten, oben, links und rechts, die den Abstand in jeder Richtung angeben.

Um beispielsweise den Abstand am unteren Rand des Diagramms zu erhöhen, um Platz für ein zu schaffen großes x-Label, verwenden Sie:

import matplotlib.pyplot as plt

plt.subplots_adjust(bottom=0.15)
Nach dem Login kopieren

Um zu verhindern, dass sich Beschriftungen mit den Achsen überlappen, können Sie den gleichen Ansatz verwenden, um die Polsterung um die Achsen herum anzupassen. Um beispielsweise den Abstand links und unten im Diagramm zu erhöhen, verwenden Sie:

plt.subplots_adjust(left=0.15, bottom=0.15)
Nach dem Login kopieren

Alternative Lösung: plt.tight_layout()

Seit der Einführung In Matplotlib Version 1.5 können Sie auch die Funktion plt.tight_layout() verwenden, um den Abstand um den Plot automatisch anzupassen, um zu verhindern, dass Beschriftungen abgeschnitten werden oder sich überlappen. Diese Funktion ist praktischer und liefert oft bessere Ergebnisse als die manuelle Anpassung der Polsterung.

Um beispielsweise plt.tight_layout() mit Unterplots zu verwenden, verwenden Sie:

fig, axes = plt.subplots(ncols=2, nrows=2, figsize=(8, 6))
axes = axes.flatten()

for ax in axes:
    ax.set_ylabel(r'$\ln\left(\frac{x_a-x_b}{x_a-x_c}\right)$')
    ax.set_xlabel(r'$\ln\left(\frac{x_a-x_d}{x_a-x_e}\right)$')

plt.tight_layout()
plt.show()
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie verhindere ich, dass Beschriftungen in Matplotlib-Plots abgeschnitten werden oder sich überlappen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
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