欢迎访问宙启技术站
智能推送

matplotlib.pyplot中绘制雷达图的详细方法

发布时间:2023-12-18 03:00:40

绘制雷达图是通过使用matplotlib.pyplot库中的plot函数和polar参数来实现的。雷达图也被称为极坐标图,它用于可视化多个变量之间的相对关系。

使用例子:


import numpy as np
import matplotlib.pyplot as plt

# 定义变量和变量的取值范围
variables = ['A', 'B', 'C', 'D', 'E']
values1 = [90, 55, 68, 40, 80]
values2 = [80, 60, 65, 90, 70]

# 计算每个变量的角度
angles = np.linspace(0, 2 * np.pi, len(variables), endpoint=False)
angles = np.concatenate((angles, [angles[0]]))

# 绘制雷达图
fig, ax = plt.subplots(figsize=(6, 6), subplot_kw={'projection': 'polar'})
ax.fill(angles, values1, alpha=0.25)
ax.fill(angles, values2, alpha=0.25)

# 设置雷达图的样式
ax.set_ylim(0, 100)
ax.set_xticks(angles[:-1])
ax.set_xticklabels(variables)
ax.set_yticks([20, 40, 60, 80])
ax.grid(True)

# 添加标题和图例
ax.set_title('Radar Chart Example', fontsize=14, fontweight='bold')
ax.legend(['Series 1', 'Series 2'], loc='lower right')

# 显示雷达图
plt.show()

以上代码会绘制一个雷达图,其中有两组数据,每组数据包含了5个变量(A、B、C、D、E)和对应的取值。具体绘制雷达图的步骤如下:

1. 导入需要的库:numpy用于处理数值计算,matplotlib.pyplot用于绘图。

2. 定义变量和变量的取值范围:在例子中,我们定义了5个变量(A、B、C、D、E)和对应的取值。

3. 计算每个变量的角度:使用linspace函数生成从0到2π的一系列数字,并将最后一个数字复制为 个数字。这些数字表示了每个变量所对应的角度。

4. 创建一个图形和坐标轴:使用subplots函数创建一个有大小为6x6的图形,并指定projection参数为'polar'以创建一个极坐标系。

5. 绘制数据:使用fill函数绘制不同的数据区域。在例子中,我们使用alpha参数指定填充颜色的透明度。

6. 设置雷达图的样式:设置雷达图的坐标轴范围、刻度和网格线等样式。

- 使用set_ylim函数设置雷达图的纵坐标范围为0到100。

- 使用set_xticks函数设置雷达图的刻度位置。

- 使用set_xticklabels函数设置刻度标签。

- 使用set_yticks函数设置纵坐标的刻度位置。

- 使用grid函数显示网格线。

7. 添加标题和图例:使用set_title函数添加图表标题,并使用legend函数添加图例。

8. 显示雷达图:使用show函数显示雷达图。

在绘制雷达图之前,我们需要确保matplotlib.pyplot库已经正确安装,并按照上述步骤编写正确的代码。通过修改变量的取值范围和添加更多的数据集,可以根据实际需求创建自定义的雷达图。