Heim > Backend-Entwicklung > Python-Tutorial > Wie zentriere ich Datenbeschriftungen in gestapelten Balkendiagrammen?

Wie zentriere ich Datenbeschriftungen in gestapelten Balkendiagrammen?

Linda Hamilton
Freigeben: 2024-11-16 10:20:03
Original
890 Leute haben es durchsucht

How to Center Data Labels in Stacked Bar Charts?

Gestapeltes Balkendiagramm mit zentrierten Beschriftungen

Problem:
Versuch, Datenbeschriftungen in einem gestapelten Balken zu zentrieren Das Diagramm kann eine Herausforderung sein, da das einfache Zentrieren der Beschriftungen möglicherweise keine perfekten Ergebnisse liefert.

Lösung 1: Pandas-Balkendiagramm mit bar_label()

  • Verwenden Sie die Pandas .DataFrame.plot.bar() oder pandas.DataFrame.plot(kind='bar', stacked=True) Methoden.
  • Verwenden Sie die Funktion matplotlib.pyplot.bar_label(), um die Beschriftungen automatisch in der zu zentrieren Balken.

Lösung 2: Explizite Beschriftung mit Rechteckeigenschaften

  • Greifen Sie mit ax.patches auf die matplotlib.patches.Rectangle-Objekte für jeden Abschnitt zu.
  • Berechnen Sie die Höhe, Breite, X- und Y-Koordinate für jedes Rechteck.
  • Erstellen Sie eine Beschriftung mit F-Strings, einschließlich zusätzlichem Text, falls gewünscht.
  • Zeichnen Sie die Beschriftungen mit ax.text() und richten Sie sie in der Mitte der entsprechenden Rechtecke aus.

Lösung 3: Seaborn Histplot

  • Konvertieren den Datenrahmen mit pandas.melt() in eine Langform umwandeln.
  • Plot mit seaborn.histplot() oder seaborn.displot() mit den Parametern multiple='stack' und discrete=True.
  • Greifen Sie mit ax.containers auf die Patches zu und fahren Sie mit der Etikettenerstellung und -platzierung wie in Lösung 2 fort.

Lösungshinweise:

  • Passen Sie Etiketten an für kleine Segmente mithilfe von ax.bar_label(c, labels=labels, label_type='center'), wobei labels eine Liste von Beschriftungen ist, die jedem Rechteck entsprechen.
  • Verwenden Sie fmt=lambda x: f'{x: .0f}', um Zahlen ohne Dezimalstellen in Lösung 1 anzuzeigen.
  • Für horizontale gestapelte Balken verwenden Sie kind='barh' in pandas.plot() und ändern Sie die Beschriftungsberechnung entsprechend.

Das obige ist der detaillierte Inhalt vonWie zentriere ich Datenbeschriftungen in gestapelten Balkendiagrammen?. 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