用python编一个六边形属性图
时间: 2024-04-28 12:24:40 浏览: 135
下面是一个使用 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)):
# 计算相邻两个顶点的中点坐标
x = (hexagon_vertices[i][0] + hexagon_vertices[(i + 1) % 6][0]) / 2
y = (hexagon_vertices[i][1] + hexagon_vertices[(i + 1) % 6][1]) / 2
# 计算属性值对应的颜色
color = plt.cm.bone_r(values[i])
# 绘制六边形
ax.add_patch(plt.Polygon(hexagon_vertices, facecolor='white', edgecolor='black', lw=2))
# 绘制属性值
ax.text(x, y, values[i], ha='center', va='center', color=color, fontsize=14)
# 设置坐标轴范围和刻度
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/ZMjQ3Vc.png)
阅读全文