首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Matplotlib饼图:同时显示值和百分比

Matplotlib饼图:同时显示值和百分比
EN

Stack Overflow用户
提问于 2020-01-08 11:21:33
回答 2查看 10.6K关注 0票数 7

这是我目前的代码

代码语言:javascript
运行
复制
values = pd.Series([False, False, True, True])
v_counts = values.value_counts()
fig = plt.figure()
plt.pie(v_counts, labels=v_counts.index, autopct='%.4f', shadow=True);

目前,它只显示百分比(使用autopct)。

我想说明百分比和实际价值(我不介意这个职位)。

该怎么做呢?

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-01-08 11:36:20

创建您自己的格式函数。请注意,您必须从该函数中的百分比中重新计算实际值。

代码语言:javascript
运行
复制
def my_fmt(x):
    print(x)
    return '{:.4f}%\n({:.0f})'.format(x, total*x/100)


values = pd.Series([False, False, True, True, True, True])
v_counts = values.value_counts()
total = len(values)
fig = plt.figure()
plt.pie(v_counts, labels=v_counts.index, autopct=my_fmt, shadow=True);

票数 12
EN

Stack Overflow用户

发布于 2022-03-17 15:32:28

@diziet-asahi的代码对我不起作用,相反,您可以使用:

代码语言:javascript
运行
复制
    def autopct_format(values):
        def my_format(pct):
            total = sum(values)
            val = int(round(pct*total/100.0))
            return '{:.1f}%\n({v:d})'.format(pct, v=val)
        return my_format

plt.pie(mydata,labels = mylabels, autopct=autopct_format(mydata))

这是我的输出:

注意:如果您想要更多的小数,只需更改返回my_format(pct)中的数字即可。

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

https://stackoverflow.com/questions/59644751

复制
相关文章

相似问题

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