使用 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中文網其他相關文章!