Matplotlib имеет выбираемые объекты, которые возвращают данные о выбранном объекте.
Пример (взят из здесь ):
fig, ax = plt.subplots()
ax.plot(np.random.rand(10))
def onclick(event):
print('%s click: button=%d, x=%d, y=%d, xdata=%f, ydata=%f' %
('double' if event.dblclick else 'single', event.button,
event.x, event.y, event.xdata, event.ydata))
cid = fig.canvas.mpl_connect('button_press_event', onclick)
Но рядом с получением таких данных, как event.x
или event.ydata
, я хотел бы получить ссылку напользовательский объект.Где каждая отдельная точка на графике возвращает разные ссылки.Возможно ли это?
Редактировать:
Для пояснения, скажем, у меня есть список многих объектов:
objects = [SomeObject() for _ in range(10**10)]
Каждый из них может быть преобразован в некоторое значение, которое яplot:
points = [obj.to_value() for obj in objects]
ax.plot(points)
Теперь, когда я щелкаю такое построенное значение, я хочу получить доступ к объекту, из которого оно было получено.Кроме того, я бы предпочел, чтобы event
, переданный методу onclick(...)
, содержал ссылку на этот объект вместо того, чтобы выполнять поиск по списку с объектами.