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

3 vues (au cours des 30 derniers jours)
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!

Réponse acceptée

Ameer Hamza
Ameer Hamza le 13 Déc 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

Plus de réponses (0)

Catégories

En savoir plus sur Graph and Network Algorithms dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by