Сохранить точки нажатия на интерактивном графике

Я хотел бы создать интерактивную фигуру matplotlib, которая циклически перебирает различные наборы точек и возвращает точки, выбранные из фигуры. Я бы хотел сохранить точки, на которые нажали мышь, и пролистать наборы точек, используя нажатие клавиатуры.

В приведенном ниже коде приведен пример, но в данный момент точки, которые щелкнули, выводятся на консоль Я не могу понять, как сохранить эти точки в виде списка. Большое спасибо.

import numpy as np
import matplotlib.pyplot as plt

def onpick(event):
    thisline = event.artist
    xdata = thisline.get_xdata()
    ydata = thisline.get_ydata()
    ind = event.ind
    points = tuple(zip(xdata[ind], ydata[ind]))
    print('onpick points:', points)

fig = plt.figure()
ax = fig.add_subplot(111)
ax.set_title('click on points')

data = np.random.rand(100)

plt.ion()
ii = 0
while ii < 50:
    line, = ax.plot(data[0:ii],'o', picker=5) 
    fig.canvas.draw()
    fig.canvas.mpl_connect('pick_event', onpick)
    while not plt.waitforbuttonpress(): pass
    plt.pause(1)  
    ii = ii + 25

0 ответов

Другие вопросы по тегам