Display the current cursor coordinates within the bounds of a plot axes.
Assigned as a WindowButtonMotionFcn callback function. Only updates when mouse is moved over plot contents.
To use (See screenshot):
t = linspace(-5,5);
y = sinc(t);
f = figure;
plot(t, y, 'r');
set(f, 'WindowButtonMotionFcn', @(obj, event)cursorLocation(obj, event, 'BottomLeft', ' X: %.3f\n Y: %.3f', 'r'))
For more information:
Can you check to make sure that cursorLocation.m is in your MATLAB path? If you type "which cursorLocation" in the MATLAB command window, it should return the location of cursorLocation if your path is set correctly.
Hi! Well... I have an issue, when I try to run the code exactly the way it's displayed, the code plots Figure 1 as shown in the screenshot, but it returns the error:
Undefined function 'cursorLocation' for input arguments of type 'double'.
Error in @(obj,event)cursorLocation(obj,event,'BottomLeft',' X: %.3f\n Y: %.3f','r')
Error while evaluating figure WindowButtonDownFcn
Error using edit (line 66)
Undefined function or variable 'obj'.
Error in helpUtils.errorDocCallback (line 23)
very usefully ! thanks you very much!
Eduardo, for a simple hack you could replace 'WindowButtonMotionFcn' in the above example with 'WindowButtonDownFcn' and it will respond to button clicks (both left and right) but only when not in zoom/pan mode.
Great function. Is there any way to use it to get the position when the mouse left button is clicked over the image? as in ginput function, to capture several cursor positions. thanks
Thank you so much for your submission it really helps with my analysis of my plots!. Keep up on the great work!!!