Ich benutze matplotlib
mit NavigationToolbar2QT
. Die Symbolleiste zeigt die Position des Cursors an. Aber ich möchte, dass der Cursor zum nächsten Datenpunkt schnappt (wenn er nah genug ist) oder einfach die Koordinate des nächsten Datenpunkts anzeigt. Kann das irgendwie arrangiert werden?
python
matplotlib
Pygmalion
quelle
quelle
Antworten:
Wenn Sie mit großen Punktmengen arbeiten, empfehle ich Ihnen
CKDtrees
:Ich habe die
kpie's
Antwort hier ein wenig überarbeitet. Sobaldckdtree
es erstellt wurde, können Sie mit ein wenig Aufwand die nächstgelegenen Punkte und verschiedene Arten von Informationen sofort identifizieren:Interaktive Anzeige der Cursorposition. Wenn Sie möchten, dass die Koordinaten des nächstgelegenen Punkts in der Navigationssymbolleiste angezeigt werden:
Ereignisse verwenden. Wenn Sie eine andere Art von Interaktivität wünschen, können Sie Ereignisse verwenden:
quelle
points
jedes Mal, wenn der Plot gezoomt wird?ckdtree.data
als realistische Punkte mit scale = 1points
beibehalten. Sie können neu skaliert werden und es gibt kein Problem, wenn Sie nur auf deren Indizes zugreifen müssen.matplotlib
? Was ich im Web gefunden habe, war äußerst kompliziert.matplotlib
Bibliothek aufzunehmen. Immerhin hat die Bibliothek irgendwo Punktpositionen abgerufen - schließlich zeichnet sie sie in der Handlung auf!set_aspect
Der folgende Code druckt die Koordinaten des Punkts, der der Maus am nächsten liegt, wenn Sie klicken.
quelle
Sie können
NavigationToolbar2QT
denmouse_move
Handler unterordnen und überschreiben . Die Attributexdata
undydata
enthalten die aktuelle Mausposition in Plotkoordinaten. Sie können dies am nächsten Datenpunkt ausrichten, bevor Sie das Ereignis an den Basisklassen-mouse_move
Handler übergeben.Vollständiges Beispiel mit Hervorhebung des nächstgelegenen Punkts in der Handlung als Bonus:
quelle