Heim  >  Artikel  >  Backend-Entwicklung  >  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
Mary-Kate OlsenOriginal
2024-11-07 07:28:03264Durchsuche

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)

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)

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()

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!

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