Я пытаюсь создать серию фигур, показывающих геометрические фигуры разных размеров (по одной фигуре на каждой фигуре), но согласованные, равные по оси оси на каждой фигуре. Я не могу заставить axis('equal')
хорошо играть с set_xlim
в matplotlib.
Вот самый близкий, который я дошел до сих пор:
pts0 = np.array([[13,34], [5,1], [ 0,0], [7,36], [13,34]], dtype=np.uint8)
pts1 = np.array([[10,82], [119,64], [149,63], [136,0], [82,14], [81,18],
[26,34], [3,29], [0,34], [10,82]], dtype=np.uint8)
shapes = [pts0,pts1]
for i in range(2):
pts = shapes[i]
fig = plt.figure()
ax1 = fig.add_subplot(111)
plotShape = patches.Polygon(pts, True, fill=True)
p = PatchCollection([plotShape], cmap=cm.Greens)
color = [99]
p.set_clim([0, 100])
p.set_array(np.array(color))
ax1.add_collection(p)
ax1.axis('equal')
ax1.set_xlim(-5,200)
ax1.set_ylim(-5,200)
ax1.set_title('pts'+str(i))
plt.show()
В моей системе это приводит к двум фигурам с одинаковыми осями, но ни одна из них не показывает y = 0 или нижнюю часть фигуры. Если я удаляю линию ax1.set_ylim(-5,200)
, то фигура «pts1» выглядит правильно, но пределы фигуры «pts0» таковы, что форма вообще не отображается.
Моя идеальная ситуация - «закрепить» левый нижний угол цифр в (-5, -5), определить xlim как 200 и разрешить масштабирование оси x и значения ymax для «float» поскольку размеры окон рисунка изменяются, но сейчас я был бы рад просто последовательно получать фигуры внутри фигур.
Любая помощь будет принята с благодарностью!