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%。

示例代码:

# Filename : example.py
# Copyright : 2020 By Nhooo
# Author by : www.cainiaojc.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()

执行上面示例代码,得到以下结果 -

执行代码结果