【发布时间】:2021-08-06 08:12:34
【问题描述】:
我正在尝试在某个方向上绘制一个六边形网格。 我使用了this 答案中提供的函数,所以我得到了这样的结果:
现在,我想要一个不以这种方式定向的六边形网格,但是那个 的边缘在顶部,如下所示:
这是用于绘制第一张图的代码:
def draw_board(board, occupied):
coord = board
colors = ["blue" if x == 0 else "green" for x in occupied.values()]
# Horizontal cartesian coords
hcoord = [c[0] for c in coord]
# Vertical cartersian coords
vcoord = [2. * np.sin(np.radians(60)) * (c[1] - c[2]) /3. for c in coord]
fig, ax = plt.subplots(1, figsize=(5, 5))
ax.set_aspect('equal')
# Add some coloured hexagons
for x, y, c in zip(hcoord, vcoord, colors):
color = c[0]
hex = RegularPolygon((x, y), numVertices=6, radius=2. / 3,
orientation=np.radians(30), facecolor = color,
alpha=0.3, edgecolor='k')
ax.add_patch(hex)
# Also add a text label
# Also add scatter points in hexagon centres
ax.scatter(hcoord, vcoord, alpha=0.3)
plt.show()
【问题讨论】:
标签: python matplotlib math graph