Clear Filters
Clear Filters

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

10 views (last 30 days)
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.

Answers (1)

Chunru
Chunru on 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 Comments
Chunru
Chunru on 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

Sign in to comment.

Categories

Find more on Networks 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!