I want to draw a graph using circular layout with some nodes inside a circular layout.
10 次查看(过去 30 天)
显示 更早的评论
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:
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1074655/image.jpeg)
I want both nodes 7 and 8 inside.
How can this be done.
0 个评论
回答(1 个)
Chunru
2022-7-23
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 个评论
Chunru
2022-7-24
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
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!