Python - Obtener coordenadas cartesianas al pulsar con el mouse un punto cualquiera en una gráfica

 
Vista:

Obtener coordenadas cartesianas al pulsar con el mouse un punto cualquiera en una gráfica

Publicado por Jose (1 intervención) el 21/05/2020 01:55:42
Respetados foristas.

Estaría muy agradecido si me pudieran ayudar con el siguiente problema:
Estoy programando, en python, una GUI en la que se le permita al usuario pulsar, con el mouse, cualquier punto sobre una gráfica. Ese evento producirá cierta información relacionada con el punto pulsado.

El problema es que para producir la información de cada punto, se requiere convertir las coordenadas en pixeles del punto a coordenadas cartesianas, es decir, obtener las coordenadas x y y originales. Donde x es un entero que va desde xmin=0 hasta un xmax. Mientras que y es un número real, que va desde un ymin hasta un ymax.

Obtengo unos valores, pero no logro conseguir valores, mas o menos, precisos con las siguientes instrucciones, que tengo dentro de la función que atiende el evento de pulsar el mouse:
1
2
3
4
5
6
7
abs_coord_x = root.winfo_pointerx() - root.winfo_rootx()
abs_coord_y = root.winfo_pointery() - root.winfo_rooty()
 
ancho =root.winfo_width()
alto = root.winfo_height()
xreal=(abs_coord_x*(xmax - xmin))/ancho + xmin
yreal=((alto - abs_coord_y)*(ymax - ymin))/alto + ymin

Evidentemente, existen problemas de identificación de los márgenes de la ventana donde inserto el gráfico, pero no sé cómo obtener esos márgenes. El gráfico se inserta en una ventana creada con tkinter. Con las siguientes instrucciones se observa que se pueden obtener esas coordenadas, pero no veo la manera de poderlas usar en mi programa:
1
2
3
toolbar = NavigationToolbar2Tk(canvas, root)
toolbar.update()
canvas.get_tk_widget().pack(side=tkinter.TOP, fill=tkinter.BOTH, expand=1)

Ojalá me puedan dar luces en ésto.

Un saludo.
José L.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Obtener coordenadas cartesianas al pulsar con el mouse un punto cualquiera en una gráfica

Publicado por Roberto Lorenzo (1 intervención) el 21/10/2020 02:30:44
Ando con el mismo problema amigo, supiste como?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Obtener coordenadas cartesianas al pulsar con el mouse un punto cualquiera en una gráfica

Publicado por Raúl (1 intervención) el 21/03/2022 02:37:42
Derrepente te sirve este link: https://programmerclick.com/article/26941667553/
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar