27
$\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$
3
  • $\begingroup$ you can try Graphviz... not sure if it scales up to millions of vertices.... $\endgroup$
    – Debasis
    Jul 22, 2014 at 15:29
  • $\begingroup$ Hopefully an answer to this question can touch on how graphs like these were made: medium.com/i-data/… $\endgroup$ Aug 4, 2014 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, 2014 at 12:21

8 Answers 8

22
$\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.

$\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"

$\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.

$\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.

$\endgroup$
2
$\begingroup$

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

$\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

$\endgroup$
3
  • $\begingroup$ Really? for me it starts to choke when trying to show more than 100 vertices $\endgroup$
    – BrDaHa
    Sep 18, 2019 at 19:19
  • $\begingroup$ Speed depends mostly on back end database and computing capacity. Graphexp is UI only. $\endgroup$ Sep 19, 2019 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, 2019 at 17:41
1
$\begingroup$

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

$\endgroup$
1
  • 1
    $\begingroup$ Yep, Graphistry is the only interactive visual tool for large graphs because it runs end-to-end on GPUs for you. $\endgroup$ Dec 21, 2018 at 2:17
0
$\begingroup$

I realise this is an old question, but I thought I would point out an application that's specifically designed to interactively visualise larger graphs. This is Graphia. Disclaimer: I am involved in the development of this application. 1m nodes/50k edges is reasonably large and depending on your hardware possibly at the limit of what can be rendered, but you should have much better results with Graphia than you would with either Cytoscape or Gephi.

Graphia Main Window

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

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