Visualizing graphs is hard. When I started working with graph data, I realized it takes significant work to create intuitive graph visualizations. Thankfully, a ton of tools have been developed that make graph visualization a cakewalk.
In this article, I’ve zoomed in on some of my favourite tools. I group these tools into categories based on their functionality and purpose. After reading, you should have an overview of the graph visualization landscape, and (hopefully) find a tool that fits your visualization needs.
Categories of Graph Visualization Tools
Before we dig in to the tools, it’s important to be aware of the categories of tools out there. All visualization toolkits were built with a specific purpose in mind, so you’ll have to make sure the tool’s purpose matches your need.
I group all graph visualization tools into four main categories:
- Development tools, to help developers work with graphs.
- Exploration tools, to help analysts explore data relationships.
- Analysis tools, for revealing trends & discrepancies.
- Reporting tools, to create and organize data reports.
In the image below, I organized some of the most popular graph visualization tools by their main category. On the vertical axis, I’ve plotted the product type (a Neo4j product, community project, or enterprise software).
Above - A structured view of the visualization tool landscape (Click to enlarge). Note that some tools sit in between two categories, in this case, the tool can be used for both purposes. Now that we have a high-level overview, lets dive into some of the tools:
1. Neo4j Browser - Development Tool
The Neo4j Browser is likely the first thing you’ll run into when working with Neo4j. A tool for database developers to run Cypher queries, the Browser lets you render query results in a graph or table format. Although limited in visualization capabilities, I use it daily to rapidly design and optimize Cypher queries.
- Easy to get started, but limited visualizations and styling choices.
- Direct views of your graph data, but requires (technical) Cypher knowledge.
- Great for rapid query development, but no saving/embedding/sharing of visualizations.
2. Neo4j Bloom - Exploration & Analysis Tool
Neo4j Bloom is a tool for interactively exploring Neo4j graphs. Whereas the Neo4j browser is mainly used by developers, Bloom is suited better for data analysts - those who want to dynamically visualize big graphs. Bloom supports text-based search, allowing people with little Cypher knowledge to investigate a Neo4j graph.
- ‘Point-and-click’ graph exploration.
- Performant views of large graphs with custom styling.
- Edit your Neo4j graph with a visual interface.
- Storing and sharing graph perspectives.
- Rendering different graph layouts.
3. Neovis.js - Development Tool
- Connect directly to Neo4j instance to get live data.
- User specified style properties based on label, property or community.
- Configure hover/click functionality for nodes.
4. Popoto.js - Development Tool
(Image credit - Popoto.js examples)
popoto.js is another community-driven JS library for creating embeddable visualizations. Popoto.js is based on the widely used D3.js library, supporting a large number of visualizations. It also contains an interactive and customizable visual query builder for Neo4j. There are a great number of examples available online on how to use popoto, as well as how to extend it with custom styling.
- An interactive visual Cypher query builder with a direct Neo4j connection.
- Embeddable into webpages, with a variety of examples available.
- Powered by the widely used D3.js visualization library.
- Custom styling by extension.
5. KeyLines - Development Tool
- Support for Time-based analysis, geospatial graph analysis, social network analysis.
- Support for geographical (map) visualizations.
- Custom graph layouts (grouping) & styling.
- High-performance WebGL rendering.
6. CytoScape - Development Tool
CytoScape is a tool originally built for visualizing biological networks, but it has recently seen uses in a variety of network analysis use-cases. The tool comes in two flavours:
- CytoScape Desktop (A standalone Java-based visualization tool)
CytoScape.js is by far the most extensive open-source library available for visualizing graphs - supporting graph layouts, advanced styling, event handling and much more.
Even though Neo4j support is not a core feature of CytoScape Desktop, several plugins exist to build visualizations directly from your Neo4j database.
- Highly optimized graph rendering.
- Uses layouts for automatically or manually positioning nodes.
- Custom styling.
- Easily embeddable into web applications.
- Open source, easy to extend with custom functionality.
7. yWorks Neo4j Explorer - Exploration Tool
The yWorks Neo4j Explorer is a free, web-based tool for exploring a Neo4j database. It consists of two main components:
- A ‘Schema view’, to see the structure of the node labels and relationship types in your Neo4j database.
- An ‘Explorer view’ for searching and navigating through your graph.
The yWorks explorer is a great option for those looking to get started with graph exploration with a simple and intuitive interface, but has limited options in comparison to (paid) enterprise products.
- Visualize and explore the Neo4j database schema.
- Modify the database schema - hide and show parts of your model.
- View a Neo4j schema in different layouts (organic, hierarchical, radial).
- Basic Graph-based search for node/relationship properties.
- Graph exploration based on relationship types & node labels.
- Styling of nodes & relationships with colors, shapes and images.
More details can be found in the blog post here.
8. Linkurious Enterprise - Exploration & Analysis Tool
Linkurious Enterprise is an on-premises graph exploration and analysis tool. It’s a feature-packed tool intended to be used by data analysts, commonly used for investigation use-cases such as detecting money laundering, cyber threats, and other criminal activities. Linkurious supports an extensive list of features for graph-search and analysis, as well as graph manipulation.
- Interactive graph exploration.
- Predefined workflows for common use-cases.
- Graph-based search for node/relationship properties.
- Storing and sharing graph perspectives in a team.
- Dynamic graph editing & the ability to render different graph layouts.
9. GraphAware Hume - Exploration & Analysis Tool
(Image credit - GraphAware)
Hume is a graph exploration and analysis tool developed by GraphAware. It supports a complete ‘graph workflow’ - from building knowledge graphs (ETL) to text-based search, as well as data science applications.
At its core, Hume is a powerful graph visualization tool. Graph-based search is a main feature of Hume, creating a workflow where searching the graph and exploration go hand-in-hand. Hume allows for custom user actions to be defined, letting you create a tailored experience for data analysts. Hume is used in a variety of business domains such as National Security, Marketing, Recommendation Engines, and Knowledge Engines.
- A platform for building knowledge graphs, with strong focus on NLP.
- Interactive graph exploration & search.
- Integration with Neo4j graph data science.
- A variety of graph layouts, custom styling and node-grouping.
- Embeddable visualizations as iframes.
- Custom exploration actions.
- SSO support, strong focus on RBAC and security features.
- Native virtual relationships, perspectives, and time-based filtering.
10. Kineviz GraphXR - Analysis Tool
KineViz is an enterprise graph analysis tool with the ability to render huge graphs (>100,000 elements) in two or three dimensions. KineViz supports loading data from CSV, JSON, or from Neo4j using Cypher. Its graph analysis capabilities include a variety of algorithms, including path finding and community detection. A detailed description of all KineViz’s features is available in the KineViz User Guide.
- Conduct times series, geospatial, and social network analysis.
- Perform statistical analysis on large and complex data sets.
- Visualize 100,000+ nodes in a variety of 3D and 2D layouts.
- Collaborate, export, and report on data in a variety of formats.
11. Graphistry - Analysis Tool
Graphistry is a graph analysis tool, capable of visualizing huge graphs in the browser. It is one of the best tools available for rendering big graphs, supporting GPU rendering of 100,000 to 1,000,000 nodes and relationships. Data can be loaded into Graphistry from Neo4j directly, or through an open-source Python library.
- GPU-accelerated rendering of huge graph visualizations.
- Graph-based clustering, filtering and search.
- Define reusable workflows for graph analysis.
- Embedding visualizations in websites, dashboards and notebooks.
- Sharing of visualizations within an organization.
12. Tom Sawyer’s Perspectives - Analysis & Reporting Tool
Perspectives is a standalone (Java- & .NET based) enterprise-grade graph visualization tool. Perspectives is a graph visualization SDK, and comes with a GUI to build applications. It supports a variety of graph layouts, as well as report types (maps, charts, timelines, tables, …). Graph clustering and flow computation can also be performed directly from the Perspectives interface.
- Standalone toolkit for building graph visualizations.
- A variety of graph layouts and styling options.
- Integrated graph algorithms for analysis.
- Flexible graph-based search and filtering.
One of the tools built with Perspectives is a custom Graph Database Browser with exploration capabilities. Check it out here.
13. Graphileon - Reporting Tool
Graphileon is a dashboard development environment, built specifically for visualizing graph data. It allows you to easily design, build and share dashboards using data from Neo4j and a variety of other graph databases. Offering an extensive set of features, Graphileon can be used as a prototyping tool, as an application framework, or a nice way to present the contents of your graph database.
- Report on a Neo4j database with networks, tables, forms, charts, maps, timelines, calendars and more.
- Organize interactions in dashboards by means of functions and triggers.
- Style your visualizations using different layouts, icons, colours and shapes.
- Save visualisations as diagrams or as images.
- Embed dashboards and charts in other applications.
- Access control and sharing of dashboards within teams.
Graphileon has both a personal edition (free to use) and an enterprise edition, the latter containing additional features.
14. Charts - Reporting Tool
Charts is a Neo4j labs project, built to directly generate charts from a Neo4j database. Charts can be installed from Neo4j Desktop or accessed from the browser at https://charts.graphapp.io. Using Cypher, you’re able to create tons of visualizations on the fly using Nivo, a data visualization library for React. It also comes with an awesome visual Neo4j query builder to help those new to Cypher write queries in a heartbeat.
- Plot charts and organize them into dashboards.
- Save & load dashboards within Neo4j Desktop.
- Support for over 20 types of visualizations.
- Interactive Cypher query builder to write queries to populate your visualizations.
Check out this post for more about Charts.
15. NeoDash - Reporting Tool
NeoDash is a graph-app/web-app to build dashboards from Neo4j data in minutes. Directly connecting to Neo4j via Bolt, it populates reports from Cypher query results. Query results can be rendered as tables, graphs, bar charts, etc., and users can interactively select parameters for reports. Basic styling options are available by overriding query parameters.
- A graph app & web-application to build dashboards.
- Visualize query results as tables, graphs, bar charts with custom styling.
- Interactively select query parameters.
- Mix visualizations with Markdown text to create an ‘living document’ using your graph data.
- Load and save dashboards as JSON.
I highly recommend checking out the Neo4j blog for more data visualization stories. If you’re working with D3.js, you should check out some of the articles by Jan Zak. Last, I’d like to mention other interesting tools that didn’t make the list:
- ReGraph - A performant graph visualization library for React.
- G6 - another JS library for graph visualizations.
- Graphlytic - a web-app for collaborative graph exploration and analysis.
- SemSpect - a different kind of visualization & exploration tool.
I hope this overview helped you get an idea of the current state of the graph visualization world. There’s a lot of amazing tools out there, and I suggest you give them a try - after all, that’s the best way to see if a tool works for you!
Only when you visualize your graph data, the real power of graphs is revealed: you’ll get insights that you’d never spot before.