Easy way to change callback function

4 views (last 30 days)
David Teitge
David Teitge on 11 Jun 2019
Commented: Walter Roberson on 11 Jun 2019
I am trying to change the callback function on a bar graph to show pertinent information about the event when a user clicks on one of the bars. I have stumbled through changing the callback function to do this, but I have to manually choose my callback function from the figure window. I would like to use some function in the script so that MATLAB knows to use my own callback function instead of its default. Is there a one line solution to this or do I need to dive deeper into callback functions in MATLAB?

Answers (2)

Steven Lord
Steven Lord on 11 Jun 2019
It sounds like you want to customize the text that appears when you have data cursors enabled, or that's one way you could achieve your goal. If so use the datacursormode function to retrieve the data cursor mode object for your figure and set its UpdateFcn property. There's an example on the datacursormode documentation page that customizes the cursor for a line plot created with plot and you should be able to adapt that example for use with a bar plot.

Walter Roberson
Walter Roberson on 11 Jun 2019
h = bar(randi(10,5,3));
set(h, 'ButtonDownFcn', @(varargin) disp('I''m hit!'))
  2 Comments
David Teitge
David Teitge on 11 Jun 2019
So I can reference my callback function with your code, but one of the inputs to the function is the event object and I do not know what this is or how to get it.
Walter Roberson
Walter Roberson on 11 Jun 2019
set(h, 'ButtonDownFcn', @(hObject, event, varargin) disp(event))

Sign in to comment.

Categories

Find more on Interactive Control and Callbacks in Help Center and File Exchange

Products


Release

R2019a

Community Treasure Hunt

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

Start Hunting!