2017-01-04 24 views
0

我想複製在Excel數據透視表中完成的工作。我有3個變量(空閒時間,總時間和客戶)。我想製作一個疊加(重疊)的條形圖,但不是所有變量的總和。在熊貓堆積條形圖與最大值而不是求和

例如:如果..

Total_time = 10 
Idle_time = 3 

我想柱狀圖顯示的空閒時間爲每一個客戶的最大值和總時間。

到目前爲止,當我嘗試使用stacked = True時,它只是將空閒時間疊加在一起並創建一個最大值爲10 + 3 = 13的條形圖。我想兩個單獨的條彼此重疊,其中一個杆馬克塞斯在10和其他在3

data = df.pivot_table(df,index=['Customer'], aggfunc=np.sum) 
ax = data[['Total time [hours]', 'Idle time [hours]']].plot.bar(stacked=True) 
ax.set_ylabel("Miles") 
ax.set_title("Total Miles Per Customer") 

plt.show() 

我已上載的Excel版本的屏幕截圖,和熊貓版本爲進一步說明。

Excel Image

Pandas Image

在此先感謝。


UPDATE:泰德與下面的解決方案。

回答

2

一個簡單的解決方案是與去年

df['Total time [hours]'].plot.bar(color='r') 
df['Idle time [hours]'].plot.bar(color='b') 

另一種解決方案是創建一個新的列,它是等於總時間減去空閒時間的空閒時間分別繪製出來,然後做一個堆疊條形圖。您可以從那裏重新命名列

df['Extra_Time'] = df['Total time [hours]'] - df['Idle time [hours]'] 
data[['Idle time [hours]', 'Extra_Time']].plot.bar(stacked=True) 
+0

感謝特德,我的6小時的挫折感到結束感謝您的簡單解決方案分別繪製它們! – Tappy