首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在python中绘制二元数据饼图

如何在python中绘制二元数据饼图
EN

Stack Overflow用户
提问于 2018-07-27 01:08:25
回答 1查看 199关注 0票数 1

我有一个数据框:

代码语言:javascript
复制
level type count
A      00   123
B      00   542
C      00   985
D      00   786
A      01   423
B      01   552
C      01   785
D      01   686 
A      02   523
B      02   642
C      02   385
D      02   86

我想要4个饼图下4个不同的水平:每个饼图有关于不同类型的数据00,01,02等。

代码语言:javascript
复制
A  - pie chart1 contains information about different 'type'
B  - pie chart2 contains information about different 'type'
C  - pie chart3 contains information about different 'type'
D  - pie chart4 contains information about different 'type'

事实上,我必须将其动态化。只有不同的级别,例如A,...D是固定的。但不同的类型00,01,...09,10可以转到许多类型,这取决于我将挑选的数据帧。我必须处理多个数据帧,它们具有相同的级别但不同的类型。

我试着在df上使用groupby,但它不起作用。

代码语言:javascript
复制
df = df.groupby(['level', 'type']).size().unstack(fill_value=0)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-27 02:27:36

这会起作用的!

代码语言:javascript
复制
import pandas as pd

df = pd.DataFrame({'level': ['A', 'B', 'C', 'D', 'A', 'B', 'C', 'D', 'A', 'B', 'C', 'D'],
                   'type': ['00', '00', '00', '00', '01', '01', '01', '01', '02', '02', '02', '02'],
                   'count':[123, 542, 985, 789, 423, 552, 785, 686, 523, 642, 385, 85]})

# Group it
group_df = df.groupby(['level'])    

for name, group in group_df:
    ax = group.groupby(['type']).sum().plot(kind='pie', y='count', legend=None, title=name)
    ax.set_ylabel(name)

希望能有所帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51544175

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档