matplotlib绘制雷达图的基本配置(万能模板案例)

  • Post category:Python

一、基本概念

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()

注释食用更佳: