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

  python-igraph 0.10.8

python-igraph 0.10.8, the seventh bugfix release of the 0.10 series, has arrived. This release updates the C core of igraph to 0.10.7, and adds support for weighted eccentricity and radius calculations. 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.


  C/igraph 0.10.7

C/igraph 0.10.7, the sixth bugfix release of the 0.10 series, has arrived.

The source can be obtained from the GitHub releases page.

This is primarily a maintenance release with bug fixes, but it also adds weighted variants of igraph_radius() and igraph_graph_center() as experimental functions. Their API will be finalized in version 0.11.0 (although we do not anticipate any changes compared to the current version).

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

More →


  C/igraph 0.10.6

C/igraph 0.10.6, the fifth bugfix release of the 0.10 series, has arrived.

The source can be obtained from the GitHub releases page.

This is a maintenance release bringing bug fixes only. In particular, we fixed convergence failures in igraph_community_voronoi() in certain cases on certain platforms, and ensured compatibility with libxml2 2.11.

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

More →


  C/igraph 0.10.5

C/igraph 0.10.5, the fourth bugfix release of the 0.10 series, has arrived.

The source can be obtained from the GitHub releases page.

This is a maintenance release bringing bug fixes, performance improvements, as well as new experimental features.

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

More →


  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.

All news →