Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Memusatkan Label Data dalam Carta Bar Bertindan?

Bagaimana untuk Memusatkan Label Data dalam Carta Bar Bertindan?

Linda Hamilton
Linda Hamiltonasal
2024-11-16 10:20:03895semak imbas

How to Center Data Labels in Stacked Bar Charts?

Carta Bar Bertindan dengan Label Berpusat

Masalah:
Percubaan untuk memusatkan label data dalam bar bertindan carta boleh mencabar, kerana hanya memusatkan label mungkin tidak membuahkan hasil yang sempurna.

Penyelesaian 1: Plot Bar Pandas dengan bar_label()

  • Gunakan panda Kaedah .DataFrame.plot.bar() atau panda.DataFrame.plot(kind='bar', stacked=True).
  • Gunakan fungsi matplotlib.pyplot.bar_label() untuk memusatkan label secara automatik dalam bar.

Penyelesaian 2: Pelabelan Eksplisit dengan Sifat Segi Empat

  • Akses matplotlib.patches.Objek segi empat tepat untuk setiap bahagian menggunakan ax.patches.
  • Kira ketinggian, lebar, koordinat-x dan koordinat-y untuk setiap segi empat tepat.
  • Buat label menggunakan rentetan-f, termasuk teks tambahan jika mahu.
  • Plot label menggunakan ax.text(), menjajarkannya di tengah segi empat tepat yang sepadan.

Penyelesaian 3: Seaborn Histplot

  • Tukar kerangka data kepada bentuk panjang menggunakan pandas.melt().
  • Plot menggunakan seaborn.histplot() atau seaborn.displot() dengan parameter berbilang='stack' dan diskret=Benar.
  • Akses tampalan menggunakan ax.containers dan teruskan dengan penciptaan dan peletakan label seperti dalam Penyelesaian 2.

Nota Penyelesaian:

  • Sesuaikan label untuk segmen kecil dengan menggunakan ax.bar_label(c, labels=labels, label_type='center'), dengan label ialah senarai label yang sepadan dengan setiap segi empat tepat.
  • Gunakan fmt=lambda x: f'{x: .0f}' untuk memaparkan nombor tanpa tempat perpuluhan dalam Penyelesaian 1.
  • Untuk bar tindanan mendatar, gunakan kind='barh' dalam pandas.plot() dan ubah suai pengiraan label dengan sewajarnya.

Atas ialah kandungan terperinci Bagaimana untuk Memusatkan Label Data dalam Carta Bar Bertindan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn