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

使用Matplotlib绘制雷达图展示多个维度的数据对比

发布时间:2024-01-19 04:12:44

Matplotlib是一个Python的数据可视化库,可以方便地绘制各种图表,包括雷达图。雷达图也称为蜘蛛图或极坐标图,用于展示多个维度的数据对比。

首先,我们需要安装Matplotlib库,可以使用pip命令来安装:

pip install matplotlib

接下来,我们使用Matplotlib库来绘制一个简单的雷达图,展示五个维度的数据对比。我们先创建一个空的绘图区域,并设置雷达图的各个维度的标签:

import matplotlib.pyplot as plt
import numpy as np

labels = ['维度1', '维度2', '维度3', '维度4', '维度5']

# 创建绘图区域
fig, ax = plt.subplots(figsize=(6, 6))

# 设置雷达图的各个维度的标签
ax.set_xticks(np.linspace(0, 2*np.pi, len(labels) + 1)[:-1])
ax.set_xticklabels(labels)

# 设置雷达图的角度的标签
ax.set_rlabel_position(0)
ax.set_yticks([0.25, 0.5, 0.75])
ax.set_yticklabels(["0.25", "0.5", "0.75"])
ax.set_ylim(0, 1)

接下来,我们随机生成一个样本数据,并根据数据的值来绘制雷达图。具体的做法是:根据各个维度的值计算出雷达图的多边形的顶点,并连接这些顶点:

# 随机生成样本数据
values = np.random.rand(len(labels))

# 计算多边形的顶点的坐标
angles = np.linspace(0, 2*np.pi, len(labels), endpoint=False).tolist()
values += values[:1]

# 绘制雷达图
ax.plot(angles, values, color='r', linewidth=2, linestyle='-', alpha=0.5)
ax.fill(angles, values, color='r', alpha=0.25)

最后,我们可以添加一些额外的标注信息,如图例和标题,并显示雷达图:

# 添加图例
ax.legend(['数据'], loc='best')

# 添加标题
plt.title('雷达图示例')

# 显示雷达图
plt.show()

完整的代码如下:

import matplotlib.pyplot as plt
import numpy as np

labels = ['维度1', '维度2', '维度3', '维度4', '维度5']

# 创建绘图区域
fig, ax = plt.subplots(figsize=(6, 6))

# 设置雷达图的各个维度的标签
ax.set_xticks(np.linspace(0, 2*np.pi, len(labels) + 1)[:-1])
ax.set_xticklabels(labels)

# 设置雷达图的角度的标签
ax.set_rlabel_position(0)
ax.set_yticks([0.25, 0.5, 0.75])
ax.set_yticklabels(["0.25", "0.5", "0.75"])
ax.set_ylim(0, 1)

# 随机生成样本数据
values = np.random.rand(len(labels))

# 计算多边形的顶点的坐标
angles = np.linspace(0, 2*np.pi, len(labels), endpoint=False).tolist()
values += values[:1]

# 绘制雷达图
ax.plot(angles, values, color='r', linewidth=2, linestyle='-', alpha=0.5)
ax.fill(angles, values, color='r', alpha=0.25)

# 添加图例
ax.legend(['数据'], loc='best')

# 添加标题
plt.title('雷达图示例')

# 显示雷达图
plt.show()

运行上述代码,就可以得到一个简单的雷达图,展示了五个维度的随机数据对比。你可以根据自己的需求,修改数据和标签来展示不同的维度数据的对比情况。