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
Lepaskan: 2024-11-24 00:41:10
asal
458 orang telah melayarinya

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
Salin selepas log masuk
  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]})
Salin selepas log masuk
  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')
Salin selepas log masuk
  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')
Salin selepas log masuk

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
Salin selepas log masuk
  • 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
Salin selepas log masuk

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!

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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan