Używam matplotlib
z NavigationToolbar2QT
. Pasek narzędzi pokazuje pozycję kursora. Chciałbym jednak, aby kursor przyciągał do najbliższego punktu danych (gdy jest wystarczająco blisko) lub po prostu pokazywał współrzędne najbliższego punktu danych. Czy można to jakoś zaaranżować?
python
matplotlib
Pigmalion
źródło
źródło
Odpowiedzi:
Jeśli pracujesz z dużymi zestawami punktów, radzę użyć
CKDtrees
:kpie's
Tutaj trochę zmieniłem odpowiedź. Pockdtree
utworzeniu, możesz z niewielkim wysiłkiem zidentyfikować najbliższe punkty i różnego rodzaju informacje na ich temat:Interaktywne wyświetlanie pozycji kursora. Jeśli chcesz, aby współrzędne najbliższego punktu były wyświetlane na pasku narzędzi nawigacji:
Korzystanie z wydarzeń. Jeśli chcesz innego rodzaju interaktywności, możesz użyć zdarzeń:
źródło
points
każdym powiększeniu wykresu?ckdtree.data
realistyczne punkty ze skalą = 1.points
Możesz przeskalować i nie ma problemu, jeśli potrzebujesz dostępu tylko do ich indeksów.matplotlib
? To, co znalazłem w sieci, było niezwykle skomplikowane.matplotlib
biblioteki. W końcu biblioteka gdzieś odwołała pozycje punktowe - w końcu rysuje je na wykresie!set_aspect
: matplotlib.org/3.1.3/api/_as_gen/…Poniższy kod wyświetli współrzędne punktu najbliższego myszy po kliknięciu.
źródło
Możesz podklasować
NavigationToolbar2QT
i zastąpićmouse_move
moduł obsługi.xdata
Iydata
atrybuty zawierają aktualną pozycję myszy we współrzędnych fabuły. Możesz przyciągnąć to do najbliższego punktu danych przed przekazaniem zdarzenia do modułumouse_move
obsługi klasy podstawowej .Pełny przykład z wyróżnieniem najbliższego punktu na wykresie:
źródło