一、基本概念
1.1 雷达图
雷达图,又称为蜘蛛网图或者极区图,是一个平面图形,以同一点为中心,将不同分类的数据分别用不同的线段连接在一起,呈放射状排布,形如蜘蛛网;用于比较多项指标在同一对象或不同对象之间的差异。
1.2 matplotlib库
Matplotlib是Python 2D绘图库,主要用于数据可视化领域,其功能强大,可绘制各种2D图形。Matplotlib是Python中最常用的数据可视化库之一。
二、绘制雷达图的基本配置
2.1 导入库
首先要导入Matplotlib库以及Numpy库(Numpy提供了Python对于科学计算的支持,用于支持矩阵等数值运算)。
import matplotlib.pyplot as plt
import numpy as np
2.2 数据设置
在绘制雷达图之前,需要将数据进行设置。将需要展示的数据按照“需要展示的组别”及“每组数据的具体值”进行设置。如下的数据设置,共有四组数据,每组数据按顺序分别为G1、G2、G3、G4。每组数据对应的指标是“用电量”,“水量”,“燃气量”,“煤气量”。
labels = ['用电量','水量','燃气量','煤气量']
data = np.array([
[1422, 332, 631, 538],
[1220, 920, 355, 666],
[1506, 450, 666, 723],
[382, 543, 452, 566]
])
2.3 设置雷达图的参数
# 将圆形分为n份(四个分别为90, 180, 270, 360)
n = len(labels)
# 设置雷达图的角度,用于平分切开一个圆面
angles = np.linspace(0, 2 * np.pi, n, endpoint=False)
# 设置雷达图的名称和大小、字体颜色大小等
plt.rcParams['font.sans-serif']=['SimHei']
plt.figure(figsize=(8, 8), dpi=80)
# 绘图
ax = plt.subplot(111, polar=True)
# 设置每一个角度处的标签
ax.set_thetagrids(angles * 180 / np.pi, labels)
# 设置雷达图的范围和标签,每个标签处的范围按顺序对应data的每一行数据
ax.set_rlim(0, 1600)
# 指定颜色并绘制多边形
colors = ['b', 'r', 'g', 'y']
for i in range(len(data)):
ax.plot(angles, data[i], 'o-', color=colors[i], linewidth=2)
# 填充雷达图内部
ax.fill(angles, data[0], alpha=0.25)
# 显示图像
plt.show()
注释食用更佳: