Как напечатать несколько полигонов для l oop с помощью matplotlib - PullRequest
0 голосов
/ 21 января 2020

Я хочу напечатать несколько полигонов (пятиугольник) в виде изображения. Я сделал массив (4,5,2), который является координатами 4 пятиугольника. Я хочу, чтобы код печатал 4 пятиугольника для l oop. Проблема в том, что мой код печатает только один полигон за каждый прогон. Вот мой код:

import numpy as np
import matplotlib.pyplot as plt

my_dpi = 100

coord = np.array([[[-150, -200], [300, -200], [300, 0], [150, 200], [-150, 200]],
                  [[-110, -220], [340, -250], [280, 0], [120, 200], [-140, 210]],
                  [[-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):
    i = 0
    geo = coord[i, :, :]

print(coord[i])

polygon = plt.Polygon(coord[i], color='w')
plt.gca().add_patch(polygon)
plt.savefig('figure/%d.jpg' % i, dpi=my_dpi)
i =+ 1    

Ответы [ 2 ]

1 голос
/ 21 января 2020

Основная проблема заключалась в том, что оператор print находился за пределами for l oop, поэтому он печатал только последний набор координат. Я также удалил строку i=0, чтобы она печаталась правильно. Код ниже печатает все координаты.

import numpy as np
import matplotlib.pyplot as plt

my_dpi = 100

coord = np.array([[[-150, -200], [300, -200], [300, 0], [150, 200], [-150, 200]],
                  [[-110, -220], [340, -250], [280, 0], [120, 200], [-140, 210]],
                  [[-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 = coord[i, :, :]
    print(coord[i])

polygon = plt.Polygon(coord[i], color='w')
plt.gca().add_patch(polygon)
plt.savefig('figure/%d.jpg' % i, dpi=my_dpi)
i =+ 1

0 голосов
/ 21 января 2020
import numpy as np
import matplotlib.pyplot as plt

pixels = 600
my_dpi = 100
num_geo=3

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]]])


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)



for i in range(4):

    geo = coord[i, :, :]
    print(coord[i])

    polygon = plt.Polygon(coord[i],color='w')
    plt.gca().add_patch(polygon)
    plt.savefig('figure/%d.jpg' % i, dpi=my_dpi)
    plt.axis('off')
    plt.axis([-300,300,-300,300])
i =+ 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...