Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Memusatkan Label Data dengan Sempurna dalam Carta Bar Bertindan Menggunakan Python?

Bagaimana untuk Memusatkan Label Data dengan Sempurna dalam Carta Bar Bertindan Menggunakan Python?

Susan Sarandon
Susan Sarandonasal
2024-11-19 07:06:02302semak imbas

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

Memusatkan Label Data dalam Carta Bar Bertindan

Apabila mencipta carta bar bertindan, adalah sukar untuk memastikan bahawa label data dipusatkan dengan betul dalam setiap bahagian bar. Isu ini boleh timbul kerana pelbagai sebab, seperti ketinggian bar, jarak antara bar dan saiz fon label.

Menggunakan Pandas dan Matplotlib.pyplot

Pendekatan yang mantap dan ringkas untuk masalah ini melibatkan penggunaan Pandas dan Matplotlib.pyplot. Pandas menyediakan cara yang mudah untuk mewakili dan memanipulasi data, manakala Matplotlib.pyplot menawarkan set alat yang berkuasa untuk mencipta visualisasi. Begini cara anda boleh memusatkan label data dalam carta bar bertindan menggunakan pendekatan ini:

  1. Buat Pandas DataFrame dengan data yang anda ingin plot.
  2. Gunakan .plot(stacked =True, kind='bar') kaedah untuk menjana carta bar bertindan.
  3. Lelaran melalui bekas dalam plot menggunakan untuk c dalam ax.containers:.
  4. Gunakan fmt=lambda x : f'{x:.0f}' jika x > 0 else '' untuk menyesuaikan format label, mengalih keluar tempat perpuluhan dan hanya memaparkan nilai bukan sifar.
  5. Panggil ax.bar_label(c, fmt=fmt) untuk memusatkan label data dalam setiap bahagian bar.

Menggunakan Seaborn

Seaborn, API peringkat tinggi yang dibina di atas Matplotlib, menawarkan cara alternatif untuk mencipta carta bar bertindan. Walaupun Seaborn tidak menyokong tindanan secara langsung, ia menyediakan pilihan untuk mencipta plot bertindan menggunakan sns.histplot atau sns.displot.

Untuk plot aras angka menggunakan sns.displot, ulang melalui paksi dan kemudian melalui bekas dalam setiap paksi. Untuk setiap bekas, gunakan ax.bar_label(c, fmt=fmt) untuk memusatkan label data.

Kaedah Asal dengan Tampalan

Kaedah yang berfungsi secara langsung dengan Matplotlib.patches.Objek segi empat tepat boleh digunakan untuk mengekstrak nilai dan kedudukan setiap bahagian bar bertindan. Kaedah ini melibatkan:

  1. Mengakses senarai patch menggunakan atribut .patches.
  2. Meletup melalui patch dan mengekstrak ketinggian, lebar, koordinat-x dan koordinat-y.
  3. Mengira titik tengah setiap bahagian dan meletakkan label dengan sewajarnya.
  4. Menyesuaikan teks label mengikut keperluan.

Atas ialah kandungan terperinci Bagaimana untuk Memusatkan Label Data dengan Sempurna dalam Carta Bar Bertindan Menggunakan Python?. 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