Filter löschen
Filter löschen

I want to draw a graph using circular layout with some nodes inside a circular layout.

10 Ansichten (letzte 30 Tage)
s = [2 3 4 7 8];
t = [1 6 7 8 5];
G = graph(s,t);
plot(G,'Layout','circle','Center',7)
This code gives:
I want both nodes 7 and 8 inside.
How can this be done.

Antworten (1)

Chunru
Chunru am 23 Jul. 2022
s = [2 3 4 7 8];
t = [1 6 7 8 5];
G = graph(s,t);
% Remove node 8 from gra[h
G1 = rmnode(G, 8);
figure;
h1 = plot(G1,'Layout','circle','Center',7);
figure;
h2 = plot(G);
h2.XData = [h1.XData(1:6) h1.XData(7)+[-.1 .1]]; % Node 7 & 8 around centre
h2.YData = [h1.YData(1:7) h1.YData(7)];
  3 Kommentare
Chunru
Chunru am 24 Jul. 2022
I think the layout function in MATLAB has no such option. You have to manually set the node position.
s = [2 3 4 7 8];
t = [1 6 7 8 5];
G = graph(s,t);
h1 = plot(G,'Layout','circle','Center',7);
h1.XData = [cosd(90-(0:5)*60) 0.1 -0.1];
h1.YData = [sind(90-(0:5)*60) 0 0];
axis equal

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Networks finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by