堆积条形图汇总特征值

时间:2017-01-05 23:21:47

标签: python pandas matplotlib

我是Python 2.7的新用户,想要在我的Jupiter Notebook上显示一个名为data的数据框中的堆积条形图。 数据框有几列来描述用户:名称,角色(父母,祖父母,孩子),评论数量,喜欢的数量和帖子数量。 我想在x轴上显示具有不同角色的堆积条形图,并总结每个角色已完成的帖子,评论等。

我尝试了这段代码,但没有显示我期待的结果

import matplotlib.pyplot as plt

%matplotlib inline

data.groupby(['Role', 'Discussion','Posts','Comments',
              'Likes']).sum().unstack().plot(kind='bar', stacked=True)

2 个答案:

答案 0 :(得分:1)

尝试将索引设置为Role,然后将其放在x轴上。

data.groupby(['Role', 'Discussion','Posts','Comments',
              'Likes']).sum().unstack().set_index('Role').plot(kind='bar', stacked=True)

答案 1 :(得分:1)

如果我理解正确,您希望通过家庭角色消除名称来结合在线活动吗?

import matplotlib.pyplot as plt
import pandas as pd
import numpy as np

data = pd.DataFrame(np.random.randint(0,100,size=(100, 4)), columns=['Comments', 'Likes', 'Posts','Discussion'])
data['Role'] = np.random.choice(['Child','Parent', 'Grandparent'],size=(100, 1))
data['Name'] = np.random.choice(['Mary','Dorothy','John','Max','Alan','Kevin','Leon'],size=(100, 1))

grpByRole = data.groupby(['Role'])['Posts','Comments','Likes', 'Discussion'].aggregate(np.sum)
ax = grpByRole.plot(kind = 'bar', stacked = True, colormap = 'winter',
 title = 'Activities by Role', rot = 0)
plt.legend(loc='center left', bbox_to_anchor=(1.0, 0.5))
plt.show()

enter image description here