Удалить полигон matplotlib Poly Editor из графикаPython

Программы на Python
Ответить
Anonymous
 Удалить полигон matplotlib Poly Editor из графика

Сообщение Anonymous »

Я использую редактор Poly из ссылки Matplotlib для создания прямоугольников на изображении.
Изображение загружается в отдельный класс с помощью следующей функции:

Код: Выделить всё

def load_image(self):
canvas = self.gui.dataPlot  # Reference to matplotlibPlot widget
fig = plt.figure(1,canvas=canvas, figsize = (1.4,1.7))
self.ax = fig.add_subplot(111)
self.image = cv2.cvtColor(cv2.imread(self.images[self.c_im]), cv2.COLOR_BGR2RGB)
self.label_list[self.c_im]['image_name'] = self.images[self.c_im]
self.img_size_x = self.image.shape[1]
self.img_size_y = self.image.shape[0]
self.ax.clear()
im = self.ax.imshow(self.image)
plt.draw()
Многоугольные объекты создаются в одном классе с помощью кнопки пользовательского интерфейса:

Код: Выделить всё

def create_rectangle(self, label):
xs = np.array([500, 1000, 1000,  500])
ys = np.array([500,   500, 1000, 1000])
poly = Polygon(np.column_stack([xs, ys]), animated=True, fill=True,closed=True, facecolor='white', alpha=0.1)
self.ax.add_patch(poly)
p = PolygonInteractor(self.ax, poly)
plt.show()
Когда изображение меняется, я хочу удалить все многоугольные объекты, чтобы иметь возможность создавать новые.
До сих пор я пробовал эти два варианта их удаления:

Код: Выделить всё

self.ax.clear()
[p.remove() for p in reversed(self.ax.patches)]
Однако, когда я их использую, многоугольный объект все еще виден. Похоже, что объект-многоугольник не является членом self.ax.patches.
У кого-нибудь есть предложения, как их удалить?

Подробнее здесь: https://stackoverflow.com/questions/792 ... -from-plot
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»