Dynamically read graph data - suggestions wanted

I do not like to reinvent wheel, so I figured to ask here.
(Mrs Google does not help much)
I like to be able to dynamically read the graph value,
similar like this

I figured that I have to correlate mouse position , standard
glutMouseFunc(processMouseClick); with data “under” the pointer and then build “floating window” to display the pertinent data.
Any suggestions on how to accomplish this and what am I missing so far woudl be appreciated.

@JulyJim
You can read hardware (key & curser-position) and draw lines & triangles. GLU & GLUT has extras, but don’t expect it to provide such specific solutions for you.
A couple of years ago I tripped across a modeling-program $100 a month for a license. I bet it could do it for you.

Thanks for reply.
I have been doing OpenGL for abut two weeks and “discovering” al kinds of cool stuff.
My latest is “stencil” , maybe I can put that to work .
I did MFC long time ago and remember “tool tip” , so I am thinking small “window” like that moving with mouse woudl do.
Then there is glReadPixels…