Pandas - 使用多列绘制未堆叠的DataFrame图

时间:2016-06-30 17:34:20

标签: python python-3.x pandas matplotlib

我在Pandas中有一个Datastrame,在取消堆叠时看起来像这样

     Unique Sessions
Date      2016-06-21 2016-06-29
Name
ABCD             995      4,088
EFGH               8         25
OPEF               1          1

如何让Pandas从此DataFrame绘制堆积条形图,其中x轴为名称,y轴为堆叠日期的数字?

# df is the stacked DataFrame
plot = df.unstack().plot(kind='bar', stacked=True, title="Test")
plot.set_xlabel("Name")
plot.set_ylabel("Num")
plt.savefig('testplot.png', dpi=1000)

此代码将创建一个条形图,但仅考虑2016-06-21,并且不会将2016-06-29的数字叠加在21世纪的数据之上。

1 个答案:

答案 0 :(得分:0)

设置

df = pd.DataFrame([[995, 4088], [8, 25], [1, 1]],
                  index=pd.Index(['ABCD', 'EFGH', 'OPEF'], name='Name'),
                  columns=pd.MultiIndex.from_product([['Unique Sessions'], ['2016-06-21', '2016-06-29']],
                                                     names=[None, 'Date']))

print df

     Unique Sessions           
Date      2016-06-21 2016-06-29
Name                           
ABCD             995       4088
EFGH               8         25
OPEF               1          1

我做了什么

plot = df['Unique Sessions'].plot.bar(stacked=True, title="Test")
plot.set_xlabel("Name")
plot.set_ylabel("Num")

enter image description here