python - Pyplot 饼图错误,值较小

标签 python matplotlib pie-chart

我尝试在饼图上绘制一组小值,但得到以下结果:

values = [0.077, 0.028, 0.006, 0.149, 0.081]

fig = plt.figure(figsize=(6,6))
ax = fig.add_subplot(111)
ax.pie(values, startangle=90)
plt.show()

Bug

但是,我只需将这些值乘以 10 即可得到正确的结果:

values = [v*10 for v in values]

Normal

知道为什么会发生这种情况以及如何解决它吗?

(注意:我使用的是 Python 2.7、matplotlib 1.4.3,并且我从 IPython 笔记本运行脚本)

最佳答案

这不是错误,而是预期的行为。来自 documentation :

Make a pie chart of array x. The fractional area of each wedge is given by x/sum(x). If sum(x) <= 1, then the values of x give the fractional area directly and the array will not be normalized.

看起来不像 pyplot.pie有一个选项可以自动对总和小于 1 的数组进行归一化,因此如果您想填充饼图,我建议您自己对它们进行归一化(或者只是将它们乘以某个数字以确保总和为 > 1 ,正如您已经发现的那样)。

关于python - Pyplot 饼图错误,值较小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33035991/

相关文章:

python - 使用多个 Python 和 IPython 路径运行 Jupyter

python - matplotlib - 如何绘制不均匀间隔为 2^n 的图形?

JavaFX 饼图 - 重叠标签和缺失标签

python - 更改 matplotlib 饼图上的 autopct 标签位置

python - 彩票分析学习

python - 机器学习(对抗性图像)

python - Matplotlib 误差条大写缺失

python - 具有自动标签功能的标签堆叠条

Android achartEngine 如何突出显示特定图表元素

python - 如何获取li的第二个span标签中存在的第二个 anchor 标签的href。 - BeautifulSoup