首頁 >後端開發 >Python教學 >如何用資料值有效註解 Pandas 長條圖?

如何用資料值有效註解 Pandas 長條圖?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-07 19:35:111005瀏覽

How to Efficiently Annotate Pandas Bar Plots with Data Values?

用資料值註解 Pandas 長條圖

使用 Pandas 長條圖時,通常需要顯示它們所代表的數值。本文解決了使用 DataFrame 中的捨入資料值註解條形的問題。

問題:

考慮以下 DataFrame (df):

                 A         B
  value1  0.440922  0.911800
  value2  0.588242  0.797366

目標是用對應的捨入值來註釋每個條形,如圖所示下面:

[帶有註釋值的條形圖圖像]

低效方法:

常見的註解方法是使用註解函數。然而,正如下面的程式碼範例所示,這種方法將註解定位在 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')

最佳解決方案:

更有效的解決方案是從軸的補丁中取得資料:

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

此代碼提取條形高度並將註釋放置在條形略上方以

自訂:

要自訂註釋,可以調整字串格式和偏移量。例如:

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

這會將註解置於每個條形的中心,並將高度格式化為小數點後兩位。

以上是如何用資料值有效註解 Pandas 長條圖?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn