Я использую matplotlib
с NavigationToolbar2QT
. Панель инструментов показывает положение курсора. Но мне бы хотелось, чтобы курсор привязывался к ближайшей точке данных (когда она находилась достаточно близко) или просто отображал координаты ближайшей точки данных. Это может быть как-то устроено?
python
matplotlib
Пигмалион
источник
источник
Ответы:
Если вы работаете с большими наборами очков, я советую вам использовать
CKDtrees
:Я
kpie's
немного поменял здесь ответ. Послеckdtree
создания вы можете без труда определить ближайшие точки и получить различную информацию о них:Интерактивное отображение положения курсора. Если вы хотите, чтобы координаты ближайшей точки отображались на панели навигации:
Использование событий. Если вы хотите другой вид интерактивности, вы можете использовать события:
источник
points
каждый раз, когда график масштабируется?ckdtree.data
реалистичные баллы со шкалой = 1. Вашиpoints
могут быть изменены, и нет никаких проблем, если вам нужен только доступ к их индексам.matplotlib
? То, что я нашел в сети, было чрезвычайно сложно.matplotlib
библиотеку. В конце концов, библиотека где-то пересчитала точечные позиции - в конце концов, она строит их на графике!set_aspect
: matplotlib.org/3.1.3/api/_as_gen/…Следующий код напечатает координаты точки, ближайшей к мыши, когда вы щелкнете.
источник
Вы можете создать подкласс
NavigationToolbar2QT
и переопределитьmouse_move
обработчик.xdata
Иydata
атрибуты содержат текущее положение курсора мыши в координатах участка. Вы можете привязать это к ближайшей точке данных перед передачей события вmouse_move
обработчик базового класса .Полный пример с выделением ближайшей точки на графике в качестве бонуса:
источник