Как обработать событие мыши на осях графика matplotlib?
Мне нужно обработать событие колеса мыши на осях графика, которые показаны красным цветом на рисунке. И при этом нужно определить, на какой оси - вертикальной или горизонтальной - произошло это событие.
В основном везде написано, что нужно использовать на атрибуте canvas
графика метод mpl_connect
. Я так и сделал и обнаружил, что при нахождении указателя мыши над указанными областями только значения x
и y
параметра event
имеют определённое значение (остальные имеют значение None
). Атрибут inaxes
имеет определённое значение только когда указатель мыши находится над розовой областью. Так что я не знаю, как таким способом можно определить, над какой осью произошло событие.
Конечно, я мог бы попытаться рассчитать координаты этих осей и определять место возникновения события по атрибутам xy
, но убеждён, что эти оси сами по себе являются объектами, а значит, могут сами устанавливать обработчики событий. Только как до них достучаться?
def zoom(event)
print(event)
p, ax = plt.subplots()
t = [0, 1, 2, 3, 4, 5]
v = [3, 5, 4, 3, 1, 6]
plt.plot(t, v)
p.canvas.mpl_connect('scroll_event', zoom)
plt.show()