Attach buttons to graph elements

25 views (last 30 days)
Timothy
Timothy on 14 Nov 2025 at 11:13
Commented: Timothy on 18 Nov 2025 at 14:37
I've created an app using the app designer that creates a graph from user inputs with buttons for adding nodes and edges separately, updating the graph each time a node or edge is added. I want each node and edge to be clickable buttons which open a new dialogue in which additional data can be inputted and viewed in the form of a table or database. Any ideas on how I could achieve this?
The inputs occur like this currently in case it's helpful:
function NewNodeButtonPushed(app, event)
%get basic node data from user
nodetemp = inputdlg(["Node Name", "Latitude", "Longitude"], "Node Details");
%add code to start
nodeinp = addvars(cell2table(transpose(nodetemp),'VariableNames',{'Name','Latitude', ...
'Longitude'}), app.index, 'before', 1,'NewVariableNames',{'Code'});
%update graph with node data
app.NodeTable=[app.NodeTable; nodeinp];
%app.G=graph(app.EdgeTable,app.NodeTable);
app.G=addnode(app.G,nodeinp);
%display graph
plot(app.UIAxes,app.G,'NodeLabel',app.G.Nodes.Name,'EdgeLabel',app.G.Edges.Distance)%plot graph
app.UITable.Data = app.NodeTable;
app.index = app.index + 1; %increment node counter
end
  2 Comments
Voss
Voss on 14 Nov 2025 at 22:55
Edited: Voss on 14 Nov 2025 at 22:56

Calling plot on a graph returns a GraphPlot object with properties described here: https://www.mathworks.com/help/matlab/ref/matlab.graphics.chart.primitive.graphplot-properties.html

I would first try setting a ButtonDownFcn on the GraphPlot object, and verify that clicks on and near the graph are recognized appropriately.

Another option is to use a UIContextMenu on the GraphPlot object, with menu items for various operations.

Timothy
Timothy on 18 Nov 2025 at 14:37
Is it possible to create callbacks for the nodes and edge presses or is it better to switch off the hit test property and treat it like a regular axes?

Sign in to comment.

Answers (0)

Categories

Find more on Graph and Network Algorithms in Help Center and File Exchange

Products


Release

R2025b

Community Treasure Hunt

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

Start Hunting!