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
Lepaskan: 2024-11-16 10:20:03
asal
908 orang telah melayarinya

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan