Clear Filters
Clear Filters

How to get cursor info in UIaxes

24 views (last 30 days)
Junfeng Liang
Junfeng Liang on 20 Apr 2022
Answered: chrisw23 on 21 Apr 2022
Hi
I am trying to duplicate the code below in the app designer. This code return the point selected with the mouse from a plot in the figure. I try to run it in the app designer. But I don't know how to pass the handle of my UIaxes to "dcm_obj"
x = linspace(0,10,150);
y = cos(5*x);
fig = figure;
plot(x,y,'Color',[0,0.7,0.9])
title('2-D Line Plot')
xlabel('x')
ylabel('cos(5x)')
% Enable data cursor mode
datacursormode on
dcm_obj = datacursormode(fig);
% Set update function
set(dcm_obj,'UpdateFcn',@myupdatefcn)
% Wait while the user to click
disp('Click line to display a data tip, then press "Return"')
pause
% Export cursor to workspace
info_struct = getCursorInfo(dcm_obj);
if isfield(info_struct, 'Position')
disp('Clicked positioin is')
disp(info_struct.Position)
end
function output_txt = myupdatefcn(~,event_obj)
% ~ Currently not used (empty)
% event_obj Object containing event data structure
% output_txt Data cursor text
pos = get(event_obj, 'Position');
output_txt = {['x: ' num2str(pos(1))], ['y: ' num2str(pos(2))]};
end
How can I do it?

Answers (2)

chrisw23
chrisw23 on 21 Apr 2022
In Appdesigner you have the option to evaulate the 'CurrentPoint' property of your Axes control within a MouseMoveCallback method.

Walter Roberson
Walter Roberson on 20 Apr 2022
event_obj.Target will be the handle to the graphics object. You can use ancestor(event_obj.Target, 'axes') if you need the UIAxes

Categories

Find more on Develop Apps Using App Designer in Help Center and File Exchange

Products


Release

R2022a

Community Treasure Hunt

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

Start Hunting!