0
$\begingroup$

I am currently trying to find a way to visualize a graph which has 10'000 nodes, and about 20'000 edges. I was trying this javascript library, but quickly realised that this is too computationally intensive. What are some viable options to visualize a graph with about 10'000 nodes, and up to 100'000 edges?

If there is no library that allows the computational effort, what are some techniques which will still allow me to gain valuable insight / or represent the graph without changing too much on it's structure?

$\endgroup$
  • $\begingroup$ Are you looking for a javascript library, or not limited to any specific programming language? $\endgroup$ – user12075 Sep 10 '18 at 0:03
  • $\begingroup$ Have you considered filtering out nodes that have few edges? $\endgroup$ – mapto Sep 10 '18 at 8:23
  • $\begingroup$ @user12075 any language is fine, but javascript would be nice to have; $\endgroup$ – DaveTheAl Sep 10 '18 at 10:08
  • $\begingroup$ @mapto I did that; I can define how many edges I want, but a graph of 10'000 nodes, and 10'000 edges is not very informative / loses a lot of information. $\endgroup$ – DaveTheAl Sep 10 '18 at 10:08
2
$\begingroup$

Gephi may be able to handle it. Graphistry definitely can but you may need to pay. Ultimately though, unless it fits some specific graph structures, most if not all major algorithms will produce an unintelligible mess.

$\endgroup$
1
$\begingroup$

A workaround:

In R, you can get the distribution of degrees with this command

table(igraph::degree(my_graph, mode = "all")) # also try "in" and "out" 

You might get this output:

   0     1    2     3     4     5 
8900 13510 6350  1130   250    20

So make, say, 6 plots, in this order: plot1 showing nodes with 5 or more edges, plot2 showing nodes with 4 edges, ..., plot6 showing with all nodes with no edges.

Using the result from the table() command above, this means in your plot1 there are 20 nodes, plot2 would contain 250 nodes...

Simply leave out those uninformative plots which would contain too many nodes.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.