用python编一个六边形雷达图
时间: 2024-04-28 09:24:39 浏览: 178
python使用matplotlib绘制雷达图
下面是一个使用 Python 绘制六边形雷达图的示例代码。需要使用到 Matplotlib 库和 NumPy 库。
```python
import matplotlib.pyplot as plt
import numpy as np
# 定义六边形顶点坐标
hexagon_vertices = np.array([[0, 0], [1, 0], [1.5, np.sqrt(3) / 2], [1, np.sqrt(3)], [0, np.sqrt(3)], [-0.5, np.sqrt(3) / 2]])
# 定义属性值
values = np.array([0.2, 0.5, 0.8, 0.3, 0.6, 0.9])
# 绘制六边形雷达图
fig, ax = plt.subplots()
for i in range(len(hexagon_vertices)):
# 计算当前顶点和下一个顶点对应的属性值
value1 = values[i]
value2 = values[(i + 1) % 6]
# 计算当前顶点和下一个顶点的坐标
x1, y1 = hexagon_vertices[i]
x2, y2 = hexagon_vertices[(i + 1) % 6]
# 计算当前顶点和下一个顶点对应的坐标
x = (x1 + x2) / 2
y = (y1 + y2) / 2
# 计算属性值对应的颜色
color1 = plt.cm.bone_r(value1)
color2 = plt.cm.bone_r(value2)
# 绘制雷达图
ax.plot([x1, x, x2], [y1, y, y2], color=color1, lw=2)
ax.fill([x1, x, x2], [y1, y, y2], color=color2)
# 设置坐标轴范围和刻度
ax.set_xlim(-0.8, 1.8)
ax.set_ylim(-0.3, np.sqrt(3) + 0.3)
ax.set_xticks([])
ax.set_yticks([])
plt.show()
```
运行代码后,将会得到一个六边形雷达图,每个六边形代表一个属性,属性值用颜色和线条表示,如下所示:
![六边形雷达图](https://i.imgur.com/3kOIyZ8.png)
阅读全文