Heim >Backend-Entwicklung >Python-Tutorial >Wie zentriert man Datenbeschriftungen in gestapelten Balkendiagrammen mit Python perfekt?

Wie zentriert man Datenbeschriftungen in gestapelten Balkendiagrammen mit Python perfekt?

Susan Sarandon
Susan SarandonOriginal
2024-11-19 07:06:02349Durchsuche

How to Perfectly Center Data Labels in Stacked Bar Charts Using Python?

Zentrieren von Datenbeschriftungen in gestapelten Balkendiagrammen

Beim Erstellen eines gestapelten Balkendiagramms kann es schwierig sein, sicherzustellen, dass die Datenbeschriftungen in jedem Abschnitt des Diagramms korrekt zentriert sind Bar. Dieses Problem kann aus verschiedenen Gründen auftreten, z. B. aufgrund der Höhe der Balken, des Abstands zwischen den Balken und der Schriftgröße der Beschriftungen.

Verwendung von Pandas und Matplotlib.pyplot

Ein robuster und prägnanter Ansatz für dieses Problem ist die Verwendung von Pandas und Matplotlib.pyplot. Pandas bietet eine bequeme Möglichkeit, Daten darzustellen und zu bearbeiten, während Matplotlib.pyplot ein leistungsstarkes Toolset zum Erstellen von Visualisierungen bietet. So können Sie die Datenbeschriftungen in einem gestapelten Balkendiagramm mit diesem Ansatz zentrieren:

  1. Erstellen Sie einen Pandas DataFrame mit den Daten, die Sie darstellen möchten.
  2. Verwenden Sie die Datei .plot(stacked =True, kind='bar')-Methode zum Generieren des gestapelten Balkendiagramms.
  3. Durchlaufen Sie die Container innerhalb des Diagramms mit for c in ax.containers:.
  4. Verwenden Sie fmt=lambda x: f'{x:.0f}', wenn x > 0 else '', um das Beschriftungsformat anzupassen, Dezimalstellen zu entfernen und nur Werte ungleich Null anzuzeigen.
  5. Rufen Sie ax.bar_label(c, fmt=fmt) auf, um die Datenbeschriftungen in jedem Abschnitt der Leiste zu zentrieren.

Verwendung von Seaborn

Seaborn, eine auf Matplotlib basierende High-Level-API, bietet eine Alternative Möglichkeit, gestapelte Balkendiagramme zu erstellen. Obwohl Seaborn das Stapeln nicht direkt unterstützt, bietet es Optionen zum Erstellen gestapelter Diagramme mit sns.histplot oder sns.displot.

Für das Diagramm auf Figurenebene mit sns.displot iterieren Sie durch die Achsen und dann durch die Container innerhalb jeder Achse. Verwenden Sie für jeden Container ax.bar_label(c, fmt=fmt), um die Datenbeschriftungen zu zentrieren.

Originalmethode mit Patches

Eine Methode, die direkt mit Matplotlib.patches.Rectangle-Objekten arbeiten kann kann verwendet werden, um die Werte und die Position jedes Abschnitts der gestapelten Leiste zu extrahieren. Diese Methode umfasst:

  1. Zugriff auf die Liste der Patches mithilfe des .patches-Attributs.
  2. Durchlaufen der Patches und Extrahieren der Höhe, Breite, X- und Y-Koordinate.
  3. Berechnen Sie den Mittelpunkt jedes Abschnitts und platzieren Sie das Etikett entsprechend.
  4. Anpassen des Etikettentextes als benötigt.

Das obige ist der detaillierte Inhalt vonWie zentriert man Datenbeschriftungen in gestapelten Balkendiagrammen mit Python perfekt?. 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