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

Bagaimana untuk Memusatkan Label Data dalam Carta Bar Bertindan Matplotlib?

DDD
DDDasal
2024-11-24 00:41:10484semak imbas

How to Center Data Labels in a Matplotlib Stacked Bar Chart?

Carta Bar Bertindan dengan Label Berpusat: Penyelesaian yang Diperbaiki Menggunakan bar_label

Dalam matplotlib, kaedah yang diperhalusi untuk memusatkan label data dengan tepat dalam susunan carta bar tersedia menggunakan fungsi bar_label. Begini caranya:

  1. Import modul yang diperlukan: Mulakan dengan mengimport perpustakaan penting.
import pandas as pd
import matplotlib.pyplot as plt
  1. Buat dan isikan DataFrame anda: Untuk membuat carta bar bertindan, anda disyorkan untuk gunakan DataFrame panda. Berikut ialah contoh DataFrame dengan tiga lajur: 'A', 'B' dan 'C'.
# sample DataFrame
df = pd.DataFrame({'A': [45, 17, 47], 'B': [91, 70, 72], 'C': [68, 43, 13]})
  1. Plot carta bar bertindan: Gunakan DataFrame untuk merancang bar bertindan carta.
ax = df.plot(kind='bar', stacked=True, figsize=(8, 6), rot=0, xlabel='Class', ylabel='Count')
  1. Labelkan bar: Sekarang, mari kita labelkan bar sambil memastikan ia berpusat. Gunakan bar_label untuk mencapainya.
for c in ax.containers:
    ax.bar_label(c, label_type='center')

Penyesuaian Pilihan

  • Sifar atau label kecil: Untuk segmen dengan sifar atau nilai kecil, laraskan keterlihatan label mengikut keperluan. Contohnya, paparkan nilai hanya apabila nilai tersebut melebihi ambang tertentu atau gunakan pilihan label_type='edge'.
labels = [v.get_height() if v.get_height() > 0 else '' for v in c]  # for segments with small or zero values
  • Format tersuai: Ubah suai label format untuk memenuhi keperluan anda.
ax.bar_label(c, fmt=lambda x: f'{x:.0f}' if x > 0 else '', label_type='center')  # to show no decimal places

Seaborn Alternatif

Jika anda lebih suka bekerja dengan seaborn, anda juga boleh membuat carta bar bertindan dan labelkan bar.

  1. Sediakan DataFrame: Serupa untuk matplotlib, buat DataFrame panda dengan data.
  2. Tukar DataFrame kepada bentuk panjang: seaborn memerlukan DataFrame dalam bentuk yang panjang, yang boleh dicapai menggunakan leburan.
  3. Plot carta dan labelkan bar: Plot carta bar bertindan dan gunakan bar_label seperti dalam matplotlib.

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