Matplotlib饼图

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

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散点图