Это мой код:
import matplotlib.pyplot as plt
from matplotlib.patches import RegularPolygon
import numpy as np
offCoord = [[-2,-2],[-1,-2],[0,-2],[1,-2],[2,-2]]
fig, ax = plt.subplots(1)
ax.set_aspect('equal')
for c in offCoord:
hex = RegularPolygon((c[0], c[1]), numVertices=6, radius=2./3., alpha=0.2, edgecolor='k')
ax.add_patch(hex)
plt.autoscale(enable = True)
plt.show()
Ожидаемый результат против фактического результата в прикрепленном изображении
Скажите, пожалуйста, почему мои шестиугольники не выстраиваются ребром в ряд, а перекрывают друг друга? Что я делаю не так?
radius
слишком большой. Похоже, чтоRegularPolygon
определяет радиус как расстояние между центром и каждой из вершин. Поэтому вам нужно использовать некоторую геометрию, чтобы выяснить, каким должно быть это значение, чтобы расстояние от центра до края было равно 1. - person mkrieger1   schedule 26.11.2019