A free Java library providing mathematical graph-theory objects and algorithms.
JGraphT is a free, open-source Java library that provides mathematical graph-theory objects and algorithms. It allows developers to create, manipulate, and analyze various types of graphs (directed, undirected, weighted) and apply algorithms like shortest path, connectivity, and flow computations. It solves the problem of implementing complex graph structures and algorithms from scratch in Java applications.
Java developers and researchers working on applications involving network analysis, data relationships, optimization problems, or any domain requiring graph modeling and algorithmic processing.
Developers choose JGraphT for its comprehensive feature set, strong adherence to graph theory principles, modular design, and active community support. It offers a production-ready, well-documented alternative to building custom graph solutions, with extensive algorithm coverage and format support.
Master repository for the JGraphT project
Includes a wide array of graph algorithms like shortest path, connectivity, and flow, as highlighted in the Key Features, saving developers from implementing complex math from scratch.
Supports import/export in DOT, GraphML, CSV, and JSON via the jgrapht-io module, enabling seamless data exchange with other tools and systems.
Designed with separate modules (e.g., jgrapht-core, jgrapht-opt) for core functionality and optimizations, allowing flexible integration and extensibility.
Offers integration with JGraphX for interactive graph visualization and editing, as mentioned in the Key Features, aiding in debugging and presentation.
The library relies on multiple external dependencies (e.g., JHeaps, JGraphX, Guava), which can increase project size and complexity, as seen in the release contents list.
Requires JDK 11 or later starting with version 1.5.0, limiting compatibility with legacy Java applications or older development environments.
Offered under both LGPL 2.1 and EPL licenses, which may require careful legal review for proprietary projects, adding overhead for commercial use.
Java dataframe and visualization library
XChart is a light-weight Java library for plotting data.
JGraphX is a Java Swing diagramming library for visualizing and interacting with node-edge graphs, not charts. It enables developers to build applications like workflow editors, organizational charts, UML tools, and network visualizations with support for XML stencils, import/export, and automatic layouting. ## Key Features - **Graph Visualization** — Render and display mathematical graphs with nodes and edges in Java Swing applications. - **Interactive Editing** — Provides tools for users to create, modify, and interact with graph elements directly. - **XML Stencils Support** — Import and export graph definitions using XML-based stencil formats. - **Automatic Layouting** — Algorithms to automatically position nodes and edges for cleaner visual representations. - **Extensive Examples** — Includes sample applications from HelloWorld to a complete GraphEditor for reference. ## Philosophy JGraphX is designed as a specialized library for graph visualization rather than general charting, focusing on flexibility and interactivity for diagramming applications.
A scientific charting library focused on performance optimised real-time data visualisation at 25 Hz update rates for data sets with a few 10 thousand up to 5 million data points.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.