Hello guys ! First of all sorry for my bad english...
I got Matlab2016, and i would like to know if is possible enlarge a node in a graph. Is there some particular function or not?
My idea is to enlarge one node based on the number of link that it has.. if one node has got many link is BIG, if it has few link is SMALL.
can you help me please?
really thanks to you :D

 채택된 답변

michio
michio 2016년 9월 28일
편집: michio 2016년 9월 28일

1 개 추천

highlight function may be the one you are looking for. highlight: Highlight nodes and edges in plotted graph The following is one of the examples from the page above with a slight modification:
n = 8;
A = delsq(numgrid('S',n+2));
G = graph(A,'OmitSelfLoops');
p = plot(G);
highlight(p,36,'MarkerSize',20)
highlight(p,6,'MarkerSize',5)
You can make a specific node bigger. Hope this helps.

댓글 수: 4

Light.16
Light.16 2016년 9월 28일
Thank you for the answer! Do you know if is possible highlight directly on graph? I mean using directly graphic interface
If you really want to do this interactively on the graph interface (plottool), you can manually change the markersize property of the graph object. see the captured image.
After executing
highlight(p,36,'MarkerSize',20)
for example, MarkerSize property becomes 1x64 array, each element corresponds to the size of each node. By clicking the small icon (right next to the section colored blue in the image) it shows a variable editor. On the editor you can manually change the values.
Light.16
Light.16 2016년 9월 28일
Really thank for this help!! Only one question... is maybe possible that the program understand automatically which node enlarge? Or i've to do this manually?
For example... how can i expand one node with 20 link and differentiate it from another one that got only 1 link?
I thought you wanted do this manually.
degree find the number of links of each node. I think you can make use of this. See Degree of graph nodes.
For example, setting the output of degree to MarkerSize property would enlarge the node to the size which is a function of the number of links. Below, numlinks is squared so that the effect is more visible.
n = 8;
A = delsq(numgrid('S',n+2));
G = graph(A,'OmitSelfLoops');
p = plot(G);
numlinks = degree(G);
p.MarkerSize = numlinks.^2;
You can modify numlinks as you want. Say, if you want to enlarge a node with 2 links:
n = 8;
A = delsq(numgrid('S',n+2));
G = graph(A,'OmitSelfLoops');
p = plot(G);
numlinks = degree(G);
Node2enlarge = find(numlinks == 2);
highlight(p, Node2enlarge);

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기

제품

질문:

2016년 9월 28일

댓글:

2016년 9월 29일

Community Treasure Hunt

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

Start Hunting!

Translated by