Python 熊猫数据帧中的堆叠条形图

Python 熊猫数据帧中的堆叠条形图,python,pandas,matplotlib,plot,bokeh,Python,Pandas,Matplotlib,Plot,Bokeh,我试图制作一个堆叠条形图,其中x轴是客户名称,y轴是呼叫数,堆叠是月份 我制作了一个pivot_表,如下所示: 枢轴_表头3 Out[23]: Month 1 2 3 4 5 6 7 8 9 10 11 12 CompanyName Company1 11 3 2 3 5

我试图制作一个堆叠条形图,其中x轴是客户名称,y轴是呼叫数,堆叠是月份

我制作了一个pivot_表,如下所示:

枢轴_表头3

Out[23]: 
Month                      1   2   3   4   5   6   7   8   9   10  11  12
CompanyName                                                              
Company1   11   3   2   3   5   7   3   6   8   3   5   8
Company2   3   1   2  18   3   4   5   4   5   5   3   2
Company3   2   6   1   3   2   0   5   6   4   8   4   7
这是密码

df = pd.read_csv('MYDATA.csv')
df = df.set_index('recvd_dttm')
df.index = pd.to_datetime(df.index, format='%m/%d/%Y %H:%M')

result = df.groupby([lambda idx: idx.month, 'CompanyName']).agg(len).reset_index()
result.columns = ['Month', 'CompanyName', 'NumberCalls']
pivot_table = result.pivot(index='Month', columns='CompanyName', values='NumberCalls').fillna(0)
s = pivot_table.sum().sort(ascending=False,inplace=False)
pivot_table = pivot_table.ix[:,s.index[:40]]
pivot_table = pivot_table.transpose()



pivot_table = pivot_table.reset_index()
pivot_table['CompanyName'] = [str(x) for x in pivot_table['CompanyName']]
Companies = list(pivot_table['CompanyName'])
months = ["1","2","3","4","5","6","7","8","9","10","11","12"]
pivot_table = pivot_table.set_index('CompanyName')
我已经试过了

ax = pivot_table.plot(kind='bar', title ="Bar chart",figsize=(15,10),legend=True, fontsize=12)
ax.set_xlabel("Company",fontsize=12)
ax.set_ylabel("Number of Calls",fontsize=12)

在bokeh试着做到这一点对于这个情节来说,漂亮是很重要的:

months = OrderedDict(Jan=Jan, Feb=Feb, Mar=Mar, Apr=Apr, 

May=May,Jun=Jun,Jul=Jul,Aug=Aug,Sep=Sep,Oct=Oct,Nov=Nov,Dec=Dec)


# any of the following commented are also alid Bar inputs
#medals = pd.DataFrame(medals)
#medals = list(medals.values())

output_file("stacked_bar.html")

bar = Bar(months, Companies, title="Stacked bars", stacked=True)

show(bar)

对于所有三种绘图方法,不断得到这个错误:ValueError:长度不匹配:预期的轴有27个元素,新的值有3个元素。我已经查找了这个ValueError,但我仍然不明白这里发生了什么

在我的例子中,我读错了数据文件

在我的例子中,我读错了数据文件

请通过pivot_table.to_csv和dropbox共享链接上传完整版本的pivot_table,好吗?只需使用你文章的前3行,我没有错误。我很笨,我刚刚意识到我读错了数据文件,这就是为什么会发生这种情况。对不起@JianxunLi。您的评论,它正在工作,帮助我找出这是一个输入错误,而不是代码错误,虽然,所以谢谢你!请通过pivot_table.to_csv和dropbox共享链接上传完整版本的pivot_table,好吗?只需使用你文章的前3行,我没有错误。我很笨,我刚刚意识到我读错了数据文件,这就是为什么会发生这种情况。对不起@JianxunLi。您的评论,它正在工作,帮助我找出这是一个输入错误,而不是代码错误,虽然,所以谢谢你!
months = OrderedDict(Jan=Jan, Feb=Feb, Mar=Mar, Apr=Apr, 

May=May,Jun=Jun,Jul=Jul,Aug=Aug,Sep=Sep,Oct=Oct,Nov=Nov,Dec=Dec)


# any of the following commented are also alid Bar inputs
#medals = pd.DataFrame(medals)
#medals = list(medals.values())

output_file("stacked_bar.html")

bar = Bar(months, Companies, title="Stacked bars", stacked=True)

show(bar)