How can I keep the coordinates of a graph's nodes unchanged after removing a specific edge?
3 views (last 30 days)
Show older comments
Hello,
I'm using the following built in function:
Tf=rmedge(G,edge); %Variable edge here is chosen randomly.
to remove an edge (link) from a graph. How can I keep the coordinates of G's nodes unchanged after removing that link?
Kindly see the attached two pictures to have a better visualization of what I'm looking for.(I'm removing the link between nodes 4 and 6).
Many thanks!
0 Comments
Accepted Answer
Ameer Hamza
on 13 Dec 2020
You can use the XData and YData property of the graphPlot object to fix their position. Check the following example
G = digraph(1,2:5);
G = addedge(G,2,6:15);
G = addedge(G,15,16:20);
subplot(2,2,1);
Gh = plot(G);
x = Gh.XData;
y = Gh.YData;
rand_edge = randi([1 10]);
G_new = rmedge(G, rand_edge);
subplot(2,2,2);
Gh_new1 = plot(G_new); % changed position of the removed node
subplot(2,2,3);
Gh_new2 = plot(G_new, 'XData', x, 'YData', y); % edge removed but nodes at same position
2 Comments
More Answers (0)
See Also
Categories
Find more on Graph and Network Algorithms 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!