Filter löschen
Filter löschen

Get data point that was clicked on in graph

157 Ansichten (letzte 30 Tage)
Mark Hayworth
Mark Hayworth am 30 Jan. 2023
Kommentiert: Mark Hayworth am 30 Jan. 2023
I have a plot on a GUIDE GUI that gives some measurement made from frames in a video. What my user wants is to click on a point in the plot and display the frame from the video that corresponds to that point in the graph. I was told from Mathworks tech support that this is not possible. But is it really impossible? They told me I could setup a callback function for the graph (axes) and then when I clicked on it I would go into the callback function and I could get the whole XData and YData vectors but I could not get the one point I clicked on, even though it shows up in the graph with the X and Y as data tips. So for example:
x=1:8;
y = rand(1, numel(x));
plot(x, y, 'b.-', 'MarkerSize', 15);
grid on;
And let's say I clicked on the point at x=6. I would go into the callback and be able to get the full 8-element x and y vectors, but the callback function would have no idea where I clicked or what the closest data point to that location is. Is that really true? I find that hard to believe. Is there any easy way to find out what vector element was clicked on? Or do I have to call on the almighty Yair Altman for a favor?

Antworten (1)

Yair Altman
Yair Altman am 30 Jan. 2023
At your service :-)
t=0:.01:5; y=sin(t); hPlot=plot(t,y);
hPlot.ButtonDownFcn = @(h,e) disp(e.IntersectionPoint);
Now whenever you click on the plot line, it will display the clicked coordinates [x,y,z]. The event data's IntersectionPoint is a 1x3 vector. Of course, to accept mouse clicks, the plot-line's HitTest property must be set to 'on' (or true).
  3 Kommentare
Yair Altman
Yair Altman am 30 Jan. 2023
see attached
Mark Hayworth
Mark Hayworth am 30 Jan. 2023
Thanks. Works perfectly. I knew you could do it. You're a genius! 😃

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Migrate GUIDE Apps finden Sie in Help Center und File Exchange

Produkte


Version

R2022b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by