Javascript/D3 for SNA

337 views
Skip to first unread message

Arman Didandeh

unread,
Feb 18, 2014, 1:13:52 PM2/18/14
to d3...@googlegroups.com
Dear all,

Are you aware of any JS/D3 API that helps social network analysis and graph mining?

For now, all I need is multiple graph layouts and some statistical analysis such as centrality, etc. However in near future, I have to have more complex functionalities such finding the frequent patterns.

Also, since I am a newbie, I need to ask if I can use python code along with my JS code as a script, and assume that it will run? I am asking because these are supposed to run on the client side right?

Cheers,
Arman

Kai Chang

unread,
Feb 18, 2014, 1:15:11 PM2/18/14
to d3...@googlegroups.com
You can use Python to generate the node/link data, attaching the results of any analysis to that data.


--
You received this message because you are subscribed to the Google Groups "d3-js" group.
To unsubscribe from this group and stop receiving emails from it, send an email to d3-js+un...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Arman Didandeh

unread,
Feb 18, 2014, 1:20:38 PM2/18/14
to d3...@googlegroups.com
Maybe I should extend my question:

I now have a base code which is all JS and visulized using D3 to work on. the data is static json files. However they need to be dynamic in near future. That is why i am thinking of python scripts inside my html.

Also, for the D3 part, I have visualizations such as networks or treemaps, based on the static data. However I need to apply some analysis on them and possibly make them responsive to the interaction. That is why I am thinking of graph mining JS APIs, or again python if I have no other choice.

I also know that Gephi has Java layouts that I could read and implement, but why re-invent the wheel if someone has already done this?

Cheers


--
You received this message because you are subscribed to a topic in the Google Groups "d3-js" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/d3-js/ImfQY6fLm7I/unsubscribe.
To unsubscribe from this group and all its topics, send an email to d3-js+un...@googlegroups.com.

Japhy Bartlett

unread,
Feb 18, 2014, 1:45:15 PM2/18/14
to d3...@googlegroups.com
I have been doing Facebook/Twitter/Reddit analysis with a mix of Python and JavaScript.  Here is some advice:

If you need to do some really large-scale mining/spidering, python is pretty great for shuffling things around between databases and APIs.  Python is good for making those static json files dynamic, or hitting an API regularly and storing time series data somewhere.s

All of my work with analysis and visualizing is being done in JS though, and it's working out pretty great.  Pretty much every API is giving things to you in JSON, and the JS map/reduce implementation is great for parsing this. If your data set is a static list of JSON?  Just put it in a browser somewhere and load it with d3.json().

Seriously wrap your head around d3.nest, and map and reduce, there is a learning curve but it is very powerful and flexible!  The actual math behind analysis of nodes and whatnot is not overwhelming.  You might find that the cost of writing a distance counting algorithm is a lot less than building a dev environment that uses Java and whatever else.

What it's going to come down to is how big your target dataset is.  If it's in the 100s of MB or even single digit GBs, you can put it in a browser and skip a lot of kind of tedious back end work.  


If you're trying to work with larger data sets, honestly you probably need to recruit an engineer anyhow!

Japhy

Elijah Meeks

unread,
Feb 19, 2014, 2:53:29 PM2/19/14
to d3...@googlegroups.com
Accidentally responded to the digest...

I'm in the middle of writing a GEXF reader that renders GEXF graphs in D3 and gives the option to do multimodal projection (project n-partite graphs into graphs connecting the selected node types based on shared connections to another class of node). I also put together a toy example that does some basic network analysis in D3 here, but it's long in the tooth and in need of a refresh:


There's also David Mimno's implementation of poisson community detection in the browser using D3:


I think a robust d3.graph that loaded standard graph formats like GEXF, node/edge tables, CSV matrices, etc and did as much as it could in the browser would be an excellent topic for the upcoming unconference. (Just noticed that Kai suggested the same thing, so yeah, let's do it)

-Elijah
Reply all
Reply to author
Forward
0 new messages