List of graph visualization libraries

📚 This list presents various graph (aka network) visualization libraries. Most of these libraries are free or open-source. A few are commercial products. There are mainly JavaScript libraries but you’ll also find other languages. The post lists libraries of various ‘depth’, some offering basic layouts and interaction, other more advanced customization and integration options.

👉 For a list of free graph visualization applications, check out my other medium post.

JavaScript graph visualization libraries

Alchemy.js: a JavaScript graph drawing application built in D3 to get started with graph visualization applications. Most customization of the application takes place by overriding default configurations, rather than direct implementation via JavaScript.

Arbor.JS: a JavaScript graph visualization library released under MIT license using web workers and jQuery. It provides a force-directed layout algorithm plus abstractions for graph organization and screen refresh handling. You can use it with canvas, SVG, or positioned HTML elements. Last updated in 2012.

ccNetViz: a lightweight JavaScript library for large network graphs visualization using WebGL. It is an open source library available under GPLv3 License developed in the Helikar Lab.

Cola.JS: an open-source JavaScript library released under the MIT License to arrange HTML5 documents and diagrams using constraint-based optimization techniques. It works well with libraries like D3.js, svg.js, and Cytoscape.js. The core layout is based on a complete rewrite in JavaScript of the C++ LibCola library.

Cytoscape.js: a graph library, written in pure JS, with a permissive open source license (MIT) for the core Cytoscape.js library and all first-party extensions. It is used in commercial projects and open-source projects for both front-facing app use-cases and developer use-cases. It includes graph theory algorithms such as BFS or PageRank.

D3.JS: a JavaScript library for manipulating documents based on data using HTML, SVG, and CSS. D3 combines visualization components and a data-driven approach to DOM manipulation.

Dagre-D3: a JavaScript library released under the MIT License to lay out directed graphs on the client-side. The Dagre-D3 library acts as a front-end to Dagre, providing actual rendering using D3.

Dracula Graph library: a JavaScript library released under the MIT License to display and layout interactive connected graphs and networks, along with various related algorithms from the field of graph theory. Just plain JavaScript and SVG.

El Grapho: a JavaScript WebGL graph data visualization framework to visualize and interact with large-graphs. It is released under the MIT License.

G6: a JavaScript graph visualization framework released under the MIT License which provides a set of basic mechanisms, letting developers build graph visualization analysis application or graph visualization modeling application.

GGraph: a graph visualization library for big data released under the Apache 2.0 License. It’s built on top D3 and extends the notion of nodes and links with groups of nodes.

GoJS: a proprietary JavaScript / TypeScript library for building interactive diagrams and graphs.

GraphGL: a JavaScript network visualization library released under the MIT License. It is designed for rendering large graphs in web browsers and dynamic graph exploration. It is suitable for static files (exported GraphML/GEXF files converted to JSON) and for dynamic files.

Graphosaurus: a three-dimensional JavaScript static graph viewer powered by WebGL (three.js) released under the MPL License.

H3Viewer: a JavaScript library providing layout and navigation of node-link graphs in 3D hyperbolic space. The library handles graphs up to 300,000 edges.

JavaScript Diagram: a commercial JavaScript library for visualizing, creating, and editing interactive diagrams. It supports creating flowcharts, organizational charts, mind maps, and BPMN charts either through code or a visual interface.

JavaScript InfoVis Toolkit: a Toolkit for creating Interactive Data Visualizations for the Web, released under the MIT License

Joint JS: a JavaScript diagramming library released under the MLP License 2.0 with features to support visualization and interaction with diagrams and graphs.

JS Graph it: a JavaScript library for graphs representation that allows you to connect your HTML elements using CSS classes to declare blocks, connectors, labels without Javascript code. JS Graph is released under the Apache 2.0 License

jsPlumb: a JavaScript graph library released under the MIT License to visually connect elements on their web pages. It uses SVG and runs on all browsers from IE9 and later.

Keylines: a commercial JavaScript software development kit (SDK) for building applications to visualize and analyze complex connected data.

mxGraph: a client-side JavaScript diagramming library, released under the Apache 2.0 License, that uses SVG and HTML for rendering. draw.io is an example that extends the functionality of this library.

NeovisJs: a JavaScript graph library combining Neo4j and vis.js to produce graph visualizations in the browser with data from Neo4j. It can connect to Neo4j instance, specify labels and property to be displayed, specify Cypher query to populate.

NetJSON: a JavaScript tool, released under BSD License, to leverage D3.js to visualize network topology using the NetJSON NetworkGraph format.

NetworkCube: an open source JavaScript / Typescript visualization library for multivariate dynamic networks.

Ogma: a commercial JavaScript library for large-scale graph visualization and interaction, developed by Linkurious.

Popoto.js: a JavaScript library built with D3.js designed to create visual query builder for Neo4j graph databases. The graph queries are translated into Cypher and run on the database. It is released under the GNU Public License.

Processing.JS: the JavaScript port of the Processing visual programming language. It allows web browsers to display animations, visual applications, games and other graphically rich content without any plug-ins.

Protovis: a JavaScript library released under the BSD License, to compose custom views of data with simple marks such as bars and dots. Protovis is no longer under active development.

Rapidd: a commercial diagramming framework to build complex applications, combining HTML 5 + SVG technologies. Rappid is the commercial extension to the JointJS Core library.

ReGraph: a commercial React library to build graph visualization applications. It’s developed by Cambridge Intelligence.

Sigma.JS: a JavaScript library released under the MIT license and dedicated to graph drawing. It lets developers publish networks on Web pages and integrate network exploration in rich Web applications.

Soba: a JavaScript visualization toolkit released under the MIT license. Soba is a 2D plotting library integrated with Sushi written in JavaScript.

Springy: a force directed layout graph layout in JavaScript.

uGraph: an MIT-license open source JavaScript & SVG library for implementing custom interactive diagrams.

Vis.JS: is a JavaScript browser-based visualization library released under the Apache 2.0 License. The library enables manipulation of and interaction with large amounts of dynamic data.

visNetwork: VisNetwork is a Proprietary R package, using vis.js library for network visualization.

VivaGraphJS: a graph drawing library for JavaScript designed to support different rendering engines and layout algorithms.

yFiles for HTML: a commercial programming library for visualizing any kind of diagram, graph, or network.

Non-JavaScript visualization libraries

AfterGlow: a script written in Perl that assists with the visualization of log data. It reads CSV files and converts them into a graph. The latest version of AfterGlow 1.6.5 was released on 07/08/13.

Circos: a software package in Perl for visualizing data and information. It displays data in a circular layout.

Dash Cytoscape: a Component Library for Dash aimed at facilitating network visualization in Python, wrapped around Cytoscape.js.

Deep Graph Library: a Python package built for implementation of graph neural network model family, on top of existing DL frameworks.

Flare: an ActionScript library for creating visualizations that run in the Adobe Flash Player. The toolkit supports data management, visual encoding, animation, and interaction techniques.

GDToolkit (GDT): a C++ Graph Drawing Toolkit designed to manipulate several types of graph, and to automatically draw them according to many different aesthetic criteria and constraints.

Grano: an open source Python tool for journalists and researchers who want to track networks of political or economic interest. It helps understand the most relevant relationships in investigations and merge data from different sources.

Graph Stream: a Java library for the modeling and analysis of dynamic graphs. You can generate, import, export, measure, layout and visualize them.

Graph Tool: a Python module for manipulation and statistical analysis of graphs. The core data structures and algorithms are implemented in C++.

Graphviz: a variety of C software for drawing attributed graphs and implementing a handful of common graph layout algorithms. The Graphviz layout programs take descriptions of graphs in text language and make diagrams in image, SVG or PDF formats; or display in the browser.

Graphvy: basic graph data exploration and visualization using Kivy and released under the MIT License.

igraph: a collection of network analysis tools open source and free. igraph can be programmed in R, Python, Mathematica and C/C++.

ipysigma: a custom Jupyter widget library to display graphs using sigma.js, released under the Apache 2.0 License.

Java Universal Network/Graph Framework (JUNG): a Java software library that provides a common language for the modeling, analysis, and visualization of data that can be represented as a graph or network.

LargeViz: a C++ tool released under the Apache 2.0 License to visualize large-scale and high-dimensional data. It supports visualizing both high-dimensional feature vectors and networks.

multiNetX: a python package, released under the GNU Public License, for the manipulation and visualization of multilayer networks.

Muxviz: a framework for the analysis and visualization of interconnected multilayer networks. It is released under the GNU General Public License v3.0.

NodeBox: a Graph library in Python released under the GPL to visualize small graphs (<200 elements) with algorithms from NetworkX for betweenness centrality and eigenvector centrality.

OGDF: a self-contained C++ class library for the automatic layout of diagrams. OGDF offers algorithms and data structures to use within your own applications or scientific projects. The library is available under the GNU General Public License.

Py3Plex: a Python library released under the BSD License, providing algorithms for decomposition, visualization, and analysis of graph data.

PyGraphistry: a Python visual graph analytics library to extract, transform, and load big graphs into Graphistry’s cloud-based graph explorer.

Quickgraph: a C# open source tool providing generic directed/undirected graph data structures and algorithms for .NET. QuickGraph supports MSAGL, GLEE, and Graphviz to render the graphs, serialization to GraphML.

SoNIA: a Java-based package for visualizing dynamic or longitudinal “network” data. It is released under the GNU GPL License.

Statnet: an integrated set of R tools for the representation, visualization, analysis, and simulation of network data. It is released under GPL-3.

Tulip: an information visualization framework dedicated to the analysis and visualization of relational data. Written in C++ the framework enables the development of algorithms, visual encodings, interaction techniques, data models, and domain-specific visualizations.

Tom Sawyer Perspectives: a commercial graph SDK with a graphics-based design and preview environment. The platform integrates enterprise data sources with graph visualization, layout, and analysis technologies.

For the list of graph visualization applications, or presentation of the graph technology ecosystem, check out my other medium posts.

Please feel free to comment on this post with libraries I forgot. I’d gladly add them to the list!

Cheers ✌️

Tech enthusiast, digital marketing manager. Working at Statice, startup specialized in synthetic data for privacy-preserving data applications 👉 www.statice.ai