Data Visualization: Plotting friendship relations

Programming Collective Intelligence's chapter 5 is dedicated to optimization and network visualization. Using the modules available here and the snippet below, I could make the following image:

>>> import optimization
>>> import socialnetwork
>>> sol = optimization.annealingoptimize(socialnetwork.domain, socialnetwork.crosscount, step=50, cool=0.99)
>>> socialnetwork.drawnetwork(sol)

chart

The advantages of this approach is that you can easily change the cost function, use different optimization algorithms, or use another library to view the solution.


Take a look at neato from the Graphviz command line tool suite. AS input it takes a so called .dot file. The format is straight forward you should just be able to iterate over all friendship relations in your system and write them into the file.


For inspiration, take a look at these social graphs from "Visual Complexity" collection.

Many visualizations have explanatory papers and articles mentioning graphing tools, libraries and algorithms used to obtain the images.

Examples from "Social Networks" category:

alt text

alt text