我有数据。标记-5个唯一值,名称-200个以上的人员,组-10个值,会议-50个值,当前-最大值为20。每个会议由演示文稿组成。 小例子:
data = [
['A', 'Frodo', 'group_1', 1, 1],
['A', 'Sam', 'group_2', 1, 1],
['N', 'Frodo', 'group_1', 1, 2],
['A', 'Sam', 'group_2', 1, 2],
['Z', 'Frodo', 'group_1', 1, 3],
['N', 'Sam', 'group_2', 1, 3],
['M', 'Frodo', 'group_1', 1, 4],
['Z', 'Sam', 'group_2', 1, 4],
['O', 'Frodo', 'group_1', 1, 5],
['A', 'Sam', 'group_2', 1, 5]]
df = pd.DataFrame(data, columns=['mark', 'name', 'group', 'meeting', 'present'])
我想为每个小组得到一个饼图,其中每个人都将绘制其分数“ N”相对于其余分数的百分比。 作为标题,我想要一个组的名称,每个组都有一个饼图,以该人的名字命名,并且在图表内部以百分比表示数字。
plot_df = pd.DataFrame(df.groupby(['name', 'group'])['mark'].value_counts()).rename(columns={'mark':'mark_count'})
plot_df.unstack(level=0).plot(kind='pie', stacked=True, subplots=True, figsize = (7,7), legend=False);
我计算了小组中每个人的分数。我不知道如何获得百分比。我还为每个人创建了一个图,但是我不知道如何按组对图进行分组。
答案 0 :(得分:2)
您可以使用autopct=
来显示简单的百分比。我认为这是数据结构的影响,但您会看到额外的0%显示。
plot_df.unstack(level=0).plot(
kind='pie',
stacked=True,
subplots=True,
autopct='%1.1f%%',
figsize=(7, 7),
legend=False,
)