饼图(Pie Graph)用于显示一个数据系列中各项的大小及其在各项总和中所占的比例。饼图中的数据点显示为整个饼图的百分比。饼图可以比较清楚地反映出部分与部分、部分与整体之间的比例关系。易于显示每组数据相对于总数的大小,且显示方式直观。
pyplot 中绘制饼图的函数为 pie,其语法格式如下:
matplotlib.pyplot.pie(x,explode=None,labels=None,colors=None,autopct=None,
pctdistance=0.6,shadow=False,labeldistance=1.1,startangle=None,radius=None,
counterclock=True,wedgeprops=None,textprops=None,center=(0,0),frame=False,
rotatelabels=False,hold=None,data=None)
函数中的主要参数说明如下:
x:接收 array。表示用于绘制饼图的数据,无默认;
explode:接收 array。表示指定项距离饼图圆心为 n 个半径,默认为 None;
labels:接收 array。指定每一项的名称,默认为 None;
colors:接收特定 string 或者包含颜色字符串的 array,表示饼图颜色,默认为 None;
autopct:接收特定 string,指定数值的显示方式,默认为 None;
pctdistance:接收 float,指定每一项的比例 autopct 和距离圆心的半径,默认为 0.6;
labeldistance:接收 float,指定每一项的名称 labels 和距离圆心的半径,默认为 1.1;
radius:接收 float,表示饼图的半径,默认为 1。
【例 1】绘制 年城镇就业人员和乡村就业人员的饼图。
其程序代码 test1.py 如下。
# -*- coding: utf-8 -*-
import numpy as np
import matplotlib.pyplot as plt
#导入就业数据
Emp_data= np.loadtxt('d:\data\Employedpopulation.csv',delimiter = ",",
usecols=(1),dtype=int)
# 设置Matplotlib正常显示中文和负号
plt.rcParams['font.sans-serif']=['SimHei'] # 用黑体显示中文
plt.rcParams['axes.unicode_minus']=False # 正常显示负号
#将就业数据赋值给X
X = [Emp_data[2],Emp_data[3]]
#创建一个绘图对象, 将画布设定为正方形,则绘制的饼图是正圆
plt.figure(figsize=(8, 8))
label = ['城镇就业','乡村就业'] #定义饼图的标签,标签是列表
explode = [0.01,0.01] #设定各项距离圆心的半径
#绘制饼图(数据,半径,数据对应的标签,百分数保留两位小数点)
plt.pie(X,explode = explode, labels=label,autopct='%1.2f%%')
#添加标题
plt.title("城镇和乡村就业人员情况饼图")
#添加图例
plt.legend({'城镇就业','乡村就业'})
plt.savefig('d:/data/Employedpopulation_pie.png')
plt.show()
运行程序后,显示的饼图如图 1 所示。
图 1:就业人员情况饼图