MATLAB Answers

How can I keep the coordinates of a graph's nodes unchanged after removing a specific edge?

2 views (last 30 days)
Asaf McRock
Asaf McRock on 13 Dec 2020
Commented: Ameer Hamza on 13 Dec 2020
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!

Accepted Answer

Ameer Hamza
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

More Answers (0)

Community Treasure Hunt

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

Start Hunting!

Translated by