2014-11-05 183 views
1

我有我ploting像這樣一個熊貓DataFrameGroupBy對象...添加datalabels - matplotlib條形圖

grouped.sum().plot(kind='bar') 

這給...

enter image description here

,但我想更多的東西像這樣...

enter image description here

我只想知道如何將數據標籤添加到每個列和可能的表中?

+0

什麼版本的熊貓? – Anzel 2014-11-05 15:57:38

+0

版本'0.15.0' – 2014-11-05 16:08:56

回答

3

要在柱狀圖上添加值標籤,你可以通過在每個索引中的列循環和使用text顯示值,像這樣:

df = DataFrame(rand(3,2), columns=['A', 'B']) 
ax = df.plot(table=True, kind='bar', title='Random') 
for i, each in enumerate(df.index): 
    for col in df.columns: 
     y = df.ix[each][col] 
     ax.text(i, y, y) 

您可能需要調整文本標籤COORDS有一個更好的定位等


要顯示網格表,pandas具有0.14+表支持。

你可以閱讀更多關於Plotting table HERE

與matplotlib表現在繪圖用表關鍵字支持DataFrame.plot() 和Series.plot()。 table關鍵字可以接受 bool,DataFrame或Series。繪製表格的簡單方法是 指定table = True。數據將被轉置爲符合matplotlib的默認佈局 。

fig, ax = plt.subplots(1, 1) 
df = DataFrame(rand(5, 3), columns=['a', 'b', 'c']) 
ax.get_xaxis().set_visible(False) # Hide Ticks 
df.plot(table=True, ax=ax) 

此外,您還可以通過不同的數據幀或系列的表關鍵字。 數據將按打印方式顯示(不自動轉換 )。如果需要,應該按照以下示例手動調換 。

fig, ax = plt.subplots(1, 1) 
ax.get_xaxis().set_visible(False) # Hide Ticks 
df.plot(table=np.round(df.T, 2), ax=ax)