make the XTickLabel mouse sensitive in UIAxes
2 views (last 30 days)
Show older comments
Shlomi Bejerano
on 17 Jan 2021
Commented: Shlomi Bejerano
on 19 Jan 2021
hi
i would like to make the XTickLabel entries (or Y or Z dimension) mouse sensitive in UIAxes. pressing a mouse left on a label should callback a function.
thanks a lot !!!
mat
6 Comments
Accepted Answer
Adam Danz
on 17 Jan 2021
Edited: Adam Danz
on 18 Jan 2021
This demo uses a ButtonDownFcn function on the axes to detect when the left mouse button selects an x-tick label. The selection updates the axis title. Requires Matlab r2020b or later.
% Create demo UI Figure
fig = uifigure();
ax = uiaxes(fig);
ax.ButtonDownFcn = @axisButtonDownFcn;
function axisButtonDownFcn(ax, event)
% Responds to mouse click on axes. If click is above the lower y-axis
% there is no action. If the click is on or around the x-axis ticks,
% the nearest tick is located. Only accepts left mouse clicks.
% Only accept left mouse clicks
if event.Button ~= 1
return
end
% Only accepts clicks lower than min(ylim)
if event.IntersectionPoint(2) > min(ax.YLim)
return
end
% Get closest x-tick to the click
[~, tickIdx] = min(abs(ax.XTick - event.IntersectionPoint(1)));
tickSelected = ax.XTick(tickIdx);
% Update axis title to indicat tick selected
ax.Title.String = sprintf('x=%.4g selected', tickSelected);
end
0 Comments
More Answers (0)
See Also
Categories
Find more on Interactive Control and Callbacks in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!