powered by NetLogo
view/download model file: VisualizationCommunities.nlogo
This is a demonstration of the utility of network visualization and in particular spring layout algorithms.
There are distinct groups of nodes. Nodes in the same group are much more likely to share an edge than nodes in different groups. Can you use a layout algoritm to detect how many groups there are?
Click on SETUP to generate a network with random coordinates.
Click on LAYOUT to use a spring layout algorithm to reposition the nodes.
Click on COLOR GROUPS to verify that the layout has correctly helped you to infer the grouping.
This model was created by Lada Adamic 2012
Feel free to use it and modify it as you like with or without attribution.
globals [ num-communities ] turtles-own [ group ] to setup ;; (for this model to work with NetLogo's new plotting features, ;; __clear-all-and-reset-ticks should be replaced with clear-all at ;; the beginning of your setup procedure and reset-ticks at the end ;; of the procedure.) __clear-all-and-reset-ticks set-default-shape turtles "circle" set num-communities 4 let batch 1 while [batch <= num-communities] [ crt 60 [ set group batch ] set batch (batch + 1) ] ask turtles [ set color white set xcor random-xcor set ycor random-ycor ] repeat (num-communities * 175) [ ask one-of turtles [ let mygroup group ifelse (random-float 1.0 < 0.93) [ if any? other turtles with [not link-neighbor? myself and (group = mygroup)] [ create-link-with one-of other turtles with [not link-neighbor? myself and (group = mygroup)] ] ] [ if any? other turtles with [not link-neighbor? myself and (group != mygroup)] [ create-link-with one-of other turtles with [not link-neighbor? myself and (group != mygroup)] ] ] ] ] end to do-layout repeat 5 [layout-spring turtles links 0.2 4 4] display end to colorgroups let batch 1 while [batch <= num-communities] [ let this-color (random 256) ask turtles with [group = batch] [ set color this-color ] set batch (batch + 1) ] end