Как получить (x,y) положение, указывающее мышью на интерактивном графике (Python)?

Я использую ноутбук ipython (с магией %matplotlib nbagg). Я просматривал matplotlib.widget.Cursor но курсор виден только виджетам. Курсор. Поэтому я хотел бы выбрать две точки, щелкающие на графике, и получить начальную и конечную x,y-позицию (например, время против температуры, выбор точек должен возвращать начальное и конечное время). Мне нужно это для выбора произвольного интервала вручную. Я думаю, что это похоже на получение глобальной позиции x, y, но я не очень хорошо понял в этом посте.

Обсервованный Нечто похожее на процедуру CURSOR в IDL

1 ответ

Решение

Обработка событий должна работать.

import matplotlib.pylab as plt
import numpy as np

f,a = plt.subplots()
x = np.linspace(1,10,100)
y = np.sin(x)
a.plot(x,y)
pos = []
def onclick(event):
    pos.append([event.xdata,event.ydata])
f.canvas.mpl_connect('button_press_event', onclick)
f.show()

При каждом нажатии текущая позиция курсора добавляется к поз.

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