Возможно ли создать RegularPolyCollection со статическими размерами?Matplotlib RegularPolyCollection со статическими (данными) размерами?
Я бы хотел указать размер в единицах данных, а не в единицах экрана. Так же, как смещения.
Целью является изображение камеры с 1440 гексагональными пикселями диаметром 9,5 мм.
можно добиться с циклом по 1440 многоугольников, но я не был преуспевающим его создания с PolyCollection, которая имеет большие преимущества, для создания цветовых карт и т.д.
Вот код, я использую для построения 1440 шестиугольников со статическим размером:
for c, x, y in zip(pixel_color, pixel_x, pixel_y):
ax.add_artist(
RegularPolygon(
xy=(x, y),
numVertices=6,
radius=4.75,
orientation=0.,
facecolor=c,
edgecolor=edgecolor,
linewidth=1.5,
)
)
и этот код производит то же самое, но с неправильным и не статичен (с точки зрения данных) размеры:
a = 1/np.sqrt(3) * 9.5
collection = RegularPolyCollection(
numsides=6,
rotation=0.,
sizes=np.ones(1440)*np.pi*a**2, # tarea of the surrounding circle
facecolors=pixel_colors,
edgecolors="g",
linewidth=np.ones(1440)*1.5,
offsets=np.transpose([pixel_x, pixel_y]),
transOffset=self.transData,
)
self.add_collection(collection)
Как достичь статических размеров шестиугольников с преимуществами наличия коллекции?