Как получить (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()
При каждом нажатии текущая позиция курсора добавляется к поз.