Take the 2-minute tour ×
Data Science Stack Exchange is a question and answer site for Data science professionals, Machine Learning specialists, and those interested in learning more about the field. It's 100% free, no registration required.

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?

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

5 Answers 5

up vote 7 down vote accepted

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.

share|improve this answer

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"

share|improve this answer

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.

share|improve this answer

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.

share|improve this answer

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

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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