super9
super9

Reputation: 30111

Data Visualization: Plotting friendship relations

I guess those who have worked in communities and social networks might have some experience in this.

I am trying to plot a graph of all the friendships that exists on my site and in doing so identify clusters of strongly interconnected users.

Does anyone have any experience in doing something like this? Also, does SQL Server 2008 BI have tools that allows for this type of modelling?

Thanks

Upvotes: 7

Views: 2567

Answers (9)

Constantin
Constantin

Reputation: 28164

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

Upvotes: 3

ЯegDwight
ЯegDwight

Reputation: 25229

Your graph will be probably reasonably large, so GraphViz is a poor choice. It does a nice job for tiny graphs, but not for huge ones. I'd recommend that you try aiSee instead (here are some example graphs). It requires graphs to be specified in a simple human-readable format called GDL.

Sample social network
(source: aisee.com)


Sample social network http://www.aisee.com/graph_of_the_month/pubmed5.gif


Sample social network
(source: aisee.com)

Upvotes: 2

jbochi
jbochi

Reputation: 29634

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.

Upvotes: 5

prp
prp

Reputation: 61

Please take a look at the prefuse visualization toolkit

Upvotes: 1

Simon
Simon

Reputation: 80769

You should look at Mark Shepherd's SpringGraph which is a neat and sexy way of showing big graphs.

Upvotes: 1

ergosys
ergosys

Reputation: 49019

You might take a look at the Girvan-Newman algorithm, the output of which gives you an idea of community structure in the form of a dendrogram.

Upvotes: 1

Gregory Pakosz
Gregory Pakosz

Reputation: 70204

For visualization, have a look at the Javascript Infovis Toolkit.

Upvotes: 1

FloppyDisk
FloppyDisk

Reputation: 1703

Check out Wikipedia -- Social Network which does talk about social network analysis and graphing relations between users. I think the basic idea is you use a graph to map all the relations and then the more shared relations there are, the higher the interconnected relationships.

Upvotes: 0

akuhn
akuhn

Reputation: 27793

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.

Upvotes: 4

Related Questions