饼图只能显示一系列数据。饼图在一个数据系列中显示项目的大小(称为楔形),与项目的总和成比例。饼图中的数据点显示为整个饼图的百分比。
Matplotlib API有一个pie()
函数,它生成一个表示数组中数据的饼图。每个楔形的分数面积由x/sum(x)
给出。如果sum(x<1
,那么x
的值直接给出小数区域,并且数组将不被标准化。结果饼图将有一个大小为1
的空楔 - sum(x)。
如果图形和轴是方形,或者轴方向相等,则饼图看起来最佳。
参数
下表列出了饼图的参数 -
x
- 数组式,楔形大小。labels
- 列表。一系列字符串,为每个楔形提供标签。colors
- 一系列matplotlib颜色参数,饼图将通过它循环。如果为None
,将使用当前活动周期中的颜色。Autopct
-string
用于用数值标记楔形。标签将放在楔子内。格式字符串将为fmt%pct
。
以下代码使用pie()
函数来显示计算机语言课程注册的学生列表的饼图。使用autopct
参数,相应的百分比显示在相应的楔形内部,该参数设置为%1.2f%
。
示例代码:
#! /usr/bin/env python
#coding=utf-8
import matplotlib.pyplot as plt
import numpy as np
import math
plt.rcParams['font.sans-serif'] = ['SimHei'] # 步骤一(替换sans-serif字体)
plt.rcParams['axes.unicode_minus'] = False # 原文出自【许虎虎】,商业转载请联系作者获得授权,非商业请保留原文链接:
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()
执行上面示例代码,得到以下结果 -
上一篇:
Matplotlib直方图
下一篇:
Matplotlib散点图