饼图只能显示一系列数据。饼图在一个数据系列中显示项目的大小(称为楔形),与项目的总和成比例。饼图中的数据点显示为整个饼图的百分比。
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%。
示例代码:
# Filename : example.py # Copyright : 2020 By Nhooo # Author by : www.niaoge.com # Date : 2020-08-08 #! /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()
执行上面示例代码,得到以下结果 -