19
$\begingroup$

What is the best tool to use to visualize (draw the vertices and edges) a graph with 1000000 vertices? There are about 50000 edges in the graph. And I can compute the location of individual vertices and edges.

I am thinking about writing a program to generate a svg. Any other suggestions?

$\endgroup$
  • $\begingroup$ you can try Graphviz... not sure if it scales up to millions of vertices.... $\endgroup$ – Debasis Jul 22 '14 at 15:29
  • $\begingroup$ Hopefully an answer to this question can touch on how graphs like these were made: medium.com/i-data/… $\endgroup$ – shadowtalker Aug 4 '14 at 23:39
  • $\begingroup$ Hello @Cici, usually questions about recommended tools are discouraged on this and other SE sites, as they just invite a lot of opinion. $\endgroup$ – Sean Owen Aug 8 '14 at 12:21
20
$\begingroup$

I also suggest Gephi software (https://gephi.github.io), which seems to be quite powerful. Some additional information on using Gephi with large networks can be found here and, more generally, here. Cytoscape (http://www.cytoscape.org) is an alternative to Gephi, being an another popular platform for complex network analysis and visualization.

If you'd like to work with networks programmatically (including visualization) in R, Python or C/C++, you can check igraph collection of libraries. Speaking of R, you may find interesting the following blog posts: on using R with Cytoscape (http://www.vesnam.com/Rblog/viznets1) and on using R with Gephi (http://www.vesnam.com/Rblog/viznets2).

For extensive lists of network analysis and visualization software, including some comparison and reviews, you might want to check the following pages: 1) http://wiki.cytoscape.org/Network_analysis_links; 2) http://www.kdnuggets.com/software/social-network-analysis.html; 3) http://www.activatenetworks.net/social-network-analysis-sna-software-review.

|improve this answer|||||
$\endgroup$
8
$\begingroup$

https://gephi.github.io/ says it can handle a million edges. If your graph has 1000000 vertices and only 50000 edges then most of your vertices won't have any edges anyway.

In fact the Gephi spec is the dual of your example: "Networks up to 50,000 nodes and 1,000,000 edges"

|improve this answer|||||
$\endgroup$
8
$\begingroup$

I think, that Gephi could face with lack-of-memory issues, you will need at least 8Gb of RAM. Though number of edges is not extremely huge.

Possibly, more appropriate tool in this case would be GraphViz. It's a command line tool for network visualizations, and presumably would be more tolerant to graph size. Moreover, as I remember, in GraphViz it is possible to use precomputed coordinates to facilitate computations.

I've tried to find a real-world examples of using GraphViz with huge graphs, but didn't succeed. Though I found similar discussion on Computational Science.

|improve this answer|||||
$\endgroup$
4
$\begingroup$

Reporting back: I ended up coding graphml and using yEd for visualization (just because I am familiar with this combination. I bet gephi or graphviz would work fine and might even be better). Since I computed the location of all nodes, memory was not such big of an issue. Coding graphml is a little easier comparing to coding svg, since I don't have to explicitly specify the placement of edges.

|improve this answer|||||
$\endgroup$
2
$\begingroup$

PajekXXL is designed to handle enormous networks. But Pajek is also kind of a bizarre program with an unintuitive interface.

|improve this answer|||||
$\endgroup$
2
$\begingroup$

I would recommend to use Graphexp. Gephi is highly dependent on the RAM of your computer which is obviously limited. Graphexp on the other hand display's only a limited number of Nodes, through which you can navigate to other nodes. I have visualized a graph with 700 Million vertices using Graphexp as a UI and Janusgraph with HBase as a back-end storage. https://github.com/bricaud/graphexp

|improve this answer|||||
$\endgroup$
  • $\begingroup$ Really? for me it starts to choke when trying to show more than 100 vertices $\endgroup$ – BrDaHa Sep 18 '19 at 19:19
  • $\begingroup$ Speed depends mostly on back end database and computing capacity. Graphexp is UI only. $\endgroup$ – Sandeep Kumar Sep 19 '19 at 7:25
  • $\begingroup$ I realize that, but by "choke" I mean the refresh rate would drop to 1-2 fps when animating the nodes coming on screen. It might help to note that this is on a recent version of Safari $\endgroup$ – BrDaHa Sep 19 '19 at 17:41
0
$\begingroup$

Take a look at Graphistry, they can handle 1Mil nodes and edges.

|improve this answer|||||
$\endgroup$
  • $\begingroup$ Yep, Graphistry is the only interactive visual tool for large graphs because it runs end-to-end on GPUs for you. $\endgroup$ – Leo Meyerovich Dec 21 '18 at 2:17

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.