igraph – The network analysis package

igraph is a collection of network analysis tools with the emphasis on efficiency, portability and ease of use. igraph is open source and free. igraph can be programmed in R, Python, Mathematica and C/C++.


igraph R package python-igraph IGraph/M igraph C library

  C/igraph 0.10.4

C/igraph 0.10.4, the third bugfix release of the 0.10 series, has arrived.

The source can be obtained from the GitHub releases page.

This release adds support for finding a shortest path with the A* algorithm and for finding a greedy vertex coloring with the DSatur heuristics. It also adds interruption support for the Bellman-Ford and Floyd-Warshall shortest path finder algorithms.

Read on for more details about the changes in version 0.10.4.

More →


  C/igraph 0.10.3

C/igraph 0.10.3, the third bugfix release of the 0.10 series, has arrived.

The source can be obtained from the GitHub releases page.

This release adds support for generating triangular and hexagonal lattices, constructing trees from a “parent” vector, and retrieving the IDs of the edges in the induced subgraph of a vertex set. It also refines the experimental API of the UMAP layout function, fixes a few bugs and improves the documentation.

Read on for more details about the changes in version 0.10.3.

More →


  IGraph/M 0.6.5

Just in time before the Christmas holidays, IGraph/M 0.6.5 is now released. This version (along with the unreleased 0.6.4) brings greatly improved performance when computing proximity graphs, new convenience functions, as well as robustness improvements. As usual, you can conveniently upgrade by running the installer script, using the following command:

Get["https://raw.githubusercontent.com/szhorvat/IGraphM/master/IGInstaller.m"]

0.6.5

Other:

  • Improved error checking and added more internal consistency checks to help debug issues with recent Mathematica versions.

0.6.4

Added:

  • IGBetaWeightedGabrielGraph for computing the β value where each edge of a lune-based β-skeleton would disappear (experimental function).
  • IGModularityMatrix gives the modularity matrix of a network.
  • IGCanonicalLabeledGraph creates a canonical representation of a labeled graph without changing vertex names. Graphs which are considered equivalent by IGSameGraphQ have the same canonical representation. It is intended for removing duplicate graphs using DeleteDuplicatesBy.
  • IGCanonicalEdgeList creates a canonical representation of an edge list, in a manner similar to IGCanonicalLabeledGraph.

Other:

  • Documentation improvements
  • Significant performance improvements for the calculation of lune and circle based β skeletons when using large β values.

  python-igraph 0.10.2

python-igraph 0.10.2, the second bugfix release of the 0.10 series, has arrived. Thise release updates the C core of igraph to 0.10.2, adds support for Python 3.11 and fixes a crash and a reference leak in earlier versions of the library. There are also some minor additions and improvements; please refer to the changelog for more details.

The preferred way of installing the Python interface is via pip; typing pip install igraph should install a pre-compiled Python wheel on most supported platforms (Windows, Linux and macOS). The pre-compiled wheels and the source code are also available from the Python Package Index page.

The documentation of the project has also been moved to Read The Docs.


  C/igraph 0.10.2

C/igraph 0.10.2, the second bugfix release of the 0.10 series, has arrived.

The source can be obtained from the GitHub releases page.

This release mostly includes bug fixes and documentation improvements, but it also adds a few new functions (shortest paths with cutoff, Floyd-Warshall algorithm and Voronoi partitioning) with an experimental API that might still change in upcoming releases. Experimental functions are clearly marked both here and in the documentation. The API of these functions will be finalized in 0.11.0, after which no further changes are expected.

Read on for more details about the changes in version 0.10.2.

More →


  IGraph/M 0.6.3

A new maintenance release of IGraph/M is now available. This is a bugfix release recommended for all users. As usual, the simplest way to upgrade is to evaluate the following, and then restart Mathematica:

Get["https://raw.githubusercontent.com/szhorvat/IGraphM/master/IGInstaller.m"]

IGraph/M 0.6.3

Changed:

  • When an invalid vertex is passed to IGraph/M functions, now the message shown is IGraphM::invv instead of VertexIndex::inv.

Fixed:

  • In rare cases, vertex names that were lists of other vertex names in the same graph were misinterpreted. This affected only Mathematica 12.0 and later.
  • IGCommunitiesLeadingEigenvector is less likely to fail to converge now.
  • IGCommunitiesLeadingEigenvector now respects random seeds set in Mathematica. These affect only the random starting vector it uses internally, which can very rarely cause non-deterministic output.
  • IGBarabasiAlbertGame no longer accepts negative or zero exponents, as these were not handled correctly.
  • IGBridges is no longer prone to stack overflow when given very large graphs.

Other:

  • Performance improvements for IGGraphEditor.
  • Documentation improvements.

  python-igraph 0.10.1

python-igraph 0.10.1, the first bugfix release of the 0.10 series, has arrived. (And we forgot to announce 0.10.0 separately, sorry). These releases update the C core of igraph to 0.10.0 and bring several improvements to the plotting functionality of the library, including an improved Matplotlib plotting backend and an experimental Plotly backend.

The preferred way of installing the Python interface is via pip; typing pip install igraph should install a pre-compiled Python wheel on most supported platforms (Windows, Linux and macOS). The pre-compiled wheels and the source code are also available from the Python Package Index page.

See the changelog on Github for relevant changes in 0.10.0 and 0.10.1:


  C/igraph 0.10.0

C/igraph 0.10.0, the first release of the 0.10 series, has arrived.

The source can be obtained from the GitHub releases page.

This release focuses on infrastructural improvements, stability, and making the igraph interface more consistent, more predictable and easier to use. It contains many API-breaking changes and function renamings, in preparation for a future 1.0 release, at which point the API will become stable. Changes in this direction are likely to continue through a 0.11 release. It is recommended that you migrate your code from 0.9 to 0.10 soon, to make the eventual transition to 1.0 easier.

Read on for more details about the changes in version 0.10.0.

More →


  C/igraph 0.9.10

C/igraph 0.9.10, the tenth bugfix release of the 0.9 series, has arrived.

The source can be obtained from the GitHub releases page.

This release includes bug fixes and documentation improvements, and it is likely to be the last patch release of the 0.9.x series. Version 0.10.0 will follow soon with lots of breaking changes as we clean up the API in preparation for a future 1.0 release.

If you have a project that currently relies on igraph 0.9, it is advised that you update the project to use 0.9.10 and then start adapting it as soon as possible to support 0.10.0 once it is released.

Read on for more details about the changes in version 0.9.9.

More →


  C/igraph 0.10.0-rc.2

igraph 0.10.0-rc.2, the second release candidate of igraph 0.10.0 is now available for download. We decided to go for a release candidate because there are lots of breaking changes in igraph 0.10.0 compared to previous versions, and we would like to gather some feedback from the community before going forward.

Since this version is a release candidate only, it is meant primarily for developers who are working on a project that depends on the igraph library and who want to be prepared in advance for the upcoming changes in igraph 0.10.0. There is no official tarball on the igraph.org homepage as the latest stable version is still 0.9.9 - you need to get the tarball from the Github releases page instead. Here is a direct link to the tarball – note that you will need to download the asset named igraph-0.10.0-rc.2.tar.gz as the link titled “Source code” is simply a snapshot of the Github repository.

For more details and a short description of breaking changes, please refer to the announcement in our Discourse group.


All news →