Python Matplotlib, как чертить художников, которые сжимаются - PullRequest
0 голосов

У меня есть базовая карта, встроенная в окно PyQt5, и я нарисовал на ней различные выбираемые художники. Моя цель - когда выбирают художников, устанавливают увеличение в два раза по сравнению с нормальным размером, а предыдущий художник (если существует) выбирают обратно в нормальное состояние. size.I сделал весь код, но, как и ожидалось, предыдущий художник с двойным увеличением увеличился, но его предыдущее состояние все еще остается в фоновом режиме до тех пор, пока фигура фактически не покраснеет aws. Я не хочу использовать метод draw (idle) что довольно медленно для интерактива.

мои художники созданы так:

self.airport = np.array(Image.open('test_alt.png'))
self.im = OffsetImage(self.airport,zoom = 0.22)
self.ab = AnnotationBbox(self.im, (float(i[1]),float(i[2])), xycoords='data',frameon=False)
self.ab.set_gid(id)
self.ab.set_picker(tolerance)

событие my pick:

def on_pick(event):
     #dont bother how i find previous artists and artist picked
     #and the draw_them
     previous_artist.offsetbox.set_zoom(0.22)          
     self.figure.draw_artist(previous_artist)


     new_artists.offsetbox.set_zoom(0.44)###set_data                         
     self.figure.draw_artist(new_artists)
     previous_artist = new_artists
     # self.figure.canvas.draw_idle()

     self.figure.canvas.blit(self.figure.bbox)

Вывод:

enter image description here

...