Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Menganotasi Plot Bar Pandas dengan Nilai Data dengan Cekap?

Bagaimana untuk Menganotasi Plot Bar Pandas dengan Nilai Data dengan Cekap?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-07 19:35:111049semak imbas

How to Efficiently Annotate Pandas Bar Plots with Data Values?

Menganotasi Plot Bar Pandas dengan Nilai Data

Apabila bekerja dengan plot bar Pandas, selalunya wajar untuk memaparkan nilai berangka yang diwakilinya. Artikel ini menangani isu bar anotasi dengan nilai data bulat daripada DataFrame.

Masalah:

Pertimbangkan DataFrame (df):

                 A         B
  value1  0.440922  0.911800
  value2  0.588242  0.797366

Matlamatnya adalah untuk menganotasi setiap bar dengan nilai bulat yang sepadan, seperti yang digambarkan dalam imej di bawah:

[Imej plot bar dengan nilai beranotasi]

Pendekatan Tidak Cekap:

Satu pendekatan biasa untuk anotasi ialah menggunakan fungsi anotasi . Walau bagaimanapun, seperti yang ditunjukkan oleh sampel kod di bawah, pendekatan ini meletakkan anotasi berpusat pada tanda-x:

ax = df.plot(kind='bar')
for idx, label in enumerate(list(df.index)):
    for acc in df.columns:
        value = np.round(df.ix[idx][acc], decimals=2)
        ax.annotate(value,
            (idx, value),
            xytext=(0, 15),
            textcoords='offset points')

Penyelesaian Optimum:

Penyelesaian yang lebih cekap adalah dengan dapatkan data daripada tampalan paksi:

for p in ax.patches:
    ax.annotate(str(p.get_height()), (p.get_x() * 1.005, p.get_height() * 1.005))

Kod ini mengekstrak ketinggian bar dan meletakkan anotasi di atas sedikit bar untuk memusatkannya.

Penyesuaian:

Untuk menyesuaikan anotasi, seseorang boleh melaraskan pemformatan rentetan dan mengimbangi. Contohnya:

for p in ax.patches:
    ax.annotate("{:.2f}".format(p.get_height()), (p.get_x() + p.get_width() / 2, p.get_height() * 1.005))

Ini memusatkan anotasi pada setiap bar dan memformat ketinggian kepada dua tempat perpuluhan.

Atas ialah kandungan terperinci Bagaimana untuk Menganotasi Plot Bar Pandas dengan Nilai Data dengan Cekap?. 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