Estoy usando matplotlibcon NavigationToolbar2QT. La barra de herramientas muestra la posición del cursor. Pero me gustaría que el cursor se ajuste al punto de datos más cercano (cuando esté lo suficientemente cerca) o simplemente muestre la coordenada del punto de datos más cercano. ¿Se puede arreglar de alguna manera?
                    
                        python
                                matplotlib
                                
                    
                    
                        Pigmalión
fuente
                
                fuente

Respuestas:
Si está trabajando con grandes conjuntos de puntos, le aconsejo que use
CKDtrees:Refactoré la
kpie'srespuesta aquí un poco. Una vezckdtreecreado, puede identificar los puntos más cercanos al instante y diversos tipos de información sobre ellos con un poco de esfuerzo:Visualización interactiva de la posición del cursor. Si desea que se muestren las coordenadas del punto más cercano en la barra de herramientas de navegación:
Usando eventos. Si desea otro tipo de interactividad, puede usar eventos:
fuente
pointscada vez que se amplía la gráfica?ckdtree.datacomo puntos realistas con scale = 1. Supointspuede ser reescalado y no hay problema si solo necesita acceder a sus índices.matplotlib? Lo que encontré en la web fue extremadamente complicado.matplotlibbiblioteca. Después de todo, la biblioteca ha rediseñado posiciones de puntos en algún lugar; después de todo, ¡las está dibujando en la trama!set_aspect: matplotlib.org/3.1.3/api/_as_gen/…El siguiente código imprimirá las coordenadas del punto más cercano al mouse cuando haga clic.
fuente
Podría subclasificar
NavigationToolbar2QTy anular elmouse_movecontrolador. Los atributosxdatayydatacontienen la posición actual del mouse en las coordenadas de la trama. Puede ajustarlo al punto de datos más cercano antes de pasar el evento a la clase basemouse_movecontrolador de la .Ejemplo completo, con el resaltado del punto más cercano en la trama como un bono:
fuente