给我一份python绘制五组用户属性数据雷达图的代码
时间: 2023-12-21 19:07:09 浏览: 75
好的,以下是使用 Python 和 matplotlib 库绘制五组用户属性数据雷达图的代码:
```python
import numpy as np
import matplotlib.pyplot as plt
# 五组用户属性数据
data = {
"用户组1": [0.9, 0.8, 0.6, 0.7, 0.5],
"用户组2": [0.7, 0.6, 0.5, 0.4, 0.3],
"用户组3": [0.6, 0.7, 0.8, 0.9, 0.7],
"用户组4": [0.5, 0.4, 0.3, 0.2, 0.1],
"用户组5": [0.4, 0.5, 0.6, 0.7, 0.8]
}
# 标签
labels = ["年龄", "收入", "教育", "家庭", "工作"]
# 使用 matplotlib 创建一个子图
fig, ax = plt.subplots(figsize=(8, 8), subplot_kw=dict(polar=True))
# 设置角度
angles = np.linspace(0, 2 * np.pi, len(labels), endpoint=False)
angles = np.concatenate((angles, [angles[0]]))
# 绘制每组数据的雷达图
for i, (name, values) in enumerate(data.items()):
# 将第一个值放到最后一个,以使雷达图闭合
values = np.concatenate((values, [values[0]]))
# 绘制雷达图
ax.plot(angles, values, label=name)
ax.fill(angles, values, alpha=0.1)
# 设置雷达图的参数
ax.set_thetagrids(angles[:-1] * 180 / np.pi, labels)
ax.set_ylim([0, 1])
ax.grid(True)
# 添加图例
ax.legend(loc='upper right', bbox_to_anchor=(0.1, 0.1))
# 显示雷达图
plt.show()
```
在这个示例代码中,我们使用了一个字典来存储五组用户属性数据,每组数据都是一个列表。我们使用 `for` 循环来遍历每组数据,使用 `plot()` 方法绘制雷达图,并使用 `fill()` 方法填充图形。我们还使用了 `set_thetagrids()` 方法来设置角度和标签,使用 `set_ylim()` 方法来设置雷达图的 Y 轴范围,使用 `grid()` 方法绘制网格线,使用 `legend()` 方法添加图例。最后,使用 `show()` 方法显示雷达图。
阅读全文