Существует несколько полигонов, и для каждого из них я хочу изменить цвет и ширину левого края, как показано на рисунке 2. Первый код для одного полигона работает правильно. Но мне интересно, в чем проблема со вторым кодом, в который я просто поместил первый код для l oop.
Рис. 1. Исходный многоугольник
рис. 2. желаемый многоугольник с красной линией
# first code:
import matplotlib.pyplot as plt
import numpy as np
pixels = 600
my_dpi = 100
one_coord = [[-150,-200],[300,-200],[300,0],[150,200],[-150,200]]
fig = plt.figure(figsize=( pixels/my_dpi, pixels/my_dpi),facecolor='k', dpi=my_dpi)
plt.axes([0,0,1,1])
rectangle = plt.Rectangle((-300, -300), 600, 600, fc='k')
plt.gca().add_patch(rectangle)
polygon = plt.Polygon(one_coord,color='w')
plt.gca().add_patch(polygon)
plt.axis('off')
plt.axis([-300,300,-300,300])
vertex_number = 5
vertex = np.zeros((vertex_number, 2, 2))
for i in range(vertex_number-1): #rang(4), (0,1,2,3)
vertex[i] = one_coord[i:i+2] #(0:2) to (3:5)
vertex[4,0,:] = one_coord[-1][:]
vertex[4,1,:] = one_coord[0][:]
plt.plot(vertex[4,:,0],vertex[4,:,1], linewidth=5, color='r')
plt.savefig('figure1/4.jpg',dpi=my_dpi)
# Second code:
import numpy as np
import matplotlib.pyplot as plt
pixels = 600
my_dpi = 100
num_geo=4
one_coord = np.array([[[-150, -200], [300, -200], [300, 0], [150, 200], [-150, 200]],
[[-300, -200], [200, -300], [200, -50], [200, 300], [-150, 200]],
[[-140, -230], [350, -260], [350, 0], [140, 200], [-180, 220]],
[[-180, -240], [370, -270], [370, 0], [170, 200], [-190, 230]]])
for i in range(4):
geo =one_coord[i, :, :]
print(one_coord[i])
fig = plt.figure(num_geo, figsize=(pixels/my_dpi, pixels/my_dpi),
facecolor='k', dpi=my_dpi)
plt.axes([0,0,1,1])
rectangle = plt.Rectangle((-300, -300), 600, 600, fc='k')
plt.gca().add_patch(rectangle)
polygon = plt.Polygon(one_coord[i],color='w')
plt.gca().add_patch(polygon)
plt.axis('off')
plt.axis([-300,300,-300,300])
plt.close()
vertex_number = 5
vertex = np.zeros((4,vertex_number,2, 2))
for j in range(num_geo):
one_coord[j]
for k in range(vertex_number-1): #rang(4), (0,1,2,3)
vertex[j] = one_coord[j][k:k+2] #(0:2) to (3:5)
vertex[j,4,0,:] = one_coord[j][-1][:]
vertex[j,4,1,:] = one_coord[j][0][:]
plt.plot( vertex[j,:,0], vertex[j,:,1], linewidth=5, color='r')
plt.savefig('figureBc/%d.jpg' % i, dpi=my_dpi)
plt.close()