Matplotlib - 饼图

一个饼图只能显示一个系列的数据。 饼图显示一个数据系列中项目的大小(称为楔形),与项目的总和成比例。 饼图中的数据点显示为整个饼图的百分比。

Matplotlib API 有一个 pie() 函数,可以生成表示数组中数据的饼图。 每个楔形的分数面积由 x/sum(x) 给出。如果 sum(x)< 1, 则 x 的值直接给出分数面积,并且数组不会被归一化。 生成的饼图将有一个空的楔形,大小为 1 - sum(x)。

如果图形和坐标轴是正方形的,或者坐标轴的纵横比相等,则饼图看起来最好。


参数

下表列出饼图的参数 −

x array-like. wedge (楔形)尺寸。
labels list. 一系列字符串,为每个 wedge (楔形)提供标签。
Colors 一个 matplotlibcolorargs 序列,饼图将循环使用。 如果没有,将使用当前活动循环中的颜色。
Autopct string,用于用数值标记楔形。 标签将放置在楔形内。 格式字符串将为 fmt%pct。

以下代码使用 pie() 函数显示各种计算机语言课程注册学生列表的饼图。 在设置为 %1.2f% 的 autopct 参数的帮助下,比例百分比显示在相应的楔形内。

from matplotlib import pyplot as plt
import numpy as np
fig = plt.figure()
ax = fig.add_axes([0,0,1,1])
ax.axis('equal')
langs = ['C', 'C++', 'Java', 'Python', 'PHP']
students = [23,17,35,29,12]
ax.pie(students, labels = langs,autopct='%1.2f%%')
plt.show()
饼图