You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Matplotlib绘制饼图为何无法得到完整饼形?

解决饼图显示不完整的问题

嗨,我帮你看了下代码和你提到的饼图问题,问题出在这儿,咱们一步步来解决:

核心修复方法

在你调用plt.pie()之后,加上一行关键代码:

plt.axis('equal')

修改后的完整代码如下:

import matplotlib.pyplot as plt 
total_a = 0.004095232 
total_b = 0.05075945 
total_c = 0.005425 
total_d = 0.022948572 
total_e = 0.015012 
slices = [total_a,total_b,total_c,total_d,total_e] 
activities = ['a', 'b', 'c', 'd','e'] 
cols = ['gold', 'yellowgreen', 'lightcoral', 'lightskyblue', 'orangered'] 

plt.pie(slices,labels=activities,autopct='%1.1f%%',colors=cols,startangle=140,shadow=True)
plt.axis('equal')  # 新增这行,让饼图以正圆形完整显示
plt.show()

问题原因说明

Matplotlib的饼图默认需要坐标轴的纵横比例保持相等,否则会因为画布的拉伸或压缩,导致饼图变形甚至缩在角落,看起来像是“不完整”。加上plt.axis('equal')会强制坐标轴使用相同的比例,让饼图以正圆形完整展示在画布中央。

另外补充一句:你提供的slices总和约为0.098,但这完全没问题——Matplotlib的pie()函数默认会自动把这些数值归一化(每个数值除以总和转换成占比),所以不管原始数值总和是多少,都会生成一个完整的饼图,这部分不用额外调整。

内容的提问来源于stack exchange,提问作者user9280506

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 07:31:54