TOOL
igraph logo

igraph

igraph is an open-source library collection for creating, manipulating and analyzing graphs and complex networks. It was started in 2006 by Gábor Csárdi and Tamás Nepusz and is distributed under the GNU General Public License version 2. The performance-critical core is written in C and C++, and this core is wrapped by first-class bindings for higher-level languages: python-igraph for Python, rigraph for R, and the IGraphM package for Mathematica. The 2006 reference paper (Csárdi and Nepusz, InterJournal Complex Systems) has been cited many thousands of times, and igraph is one of the most widely used network-analysis toolkits in academic and scientific computing, comparable in scope to NetworkX and graph-tool.

Its data model is an in-memory graph object: vertices and edges are addressed by contiguous integer indices, with arbitrary named attributes attachable to vertices, edges and the graph itself. Both directed and undirected graphs, multigraphs and self-loops are supported. This index-based representation, backed by compact C data structures, is what lets igraph handle large graphs (millions of edges) efficiently while still being driven interactively from Python or R.

The library provides a broad algorithm suite: deterministic and random graph generators, degree-preserving rewiring, connected-component and motif detection, many centrality measures (degree, betweenness, closeness, eigenvector, PageRank), community detection (Louvain, leading-eigenvector, edge-betweenness, walktrap and others), shortest paths, maximum flow, minimum cuts, and a range of graph layout algorithms for visualization.

For interchange, igraph reads and writes several standard graph formats, making it a practical conversion hub. It can read GraphML, GML, Pajek, NCOL, LGL, DIMACS, UCINET DL (UCINET), and plain edge lists; it writes GraphML, GML, Pajek, DOT, LEDA, NCOL, LGL, DIMACS and edge lists. Support is sometimes partial: for Pajek it handles only .net network files, not full .paj projects.

Honest limitations: igraph is a general-purpose analysis and manipulation library, not a persistent graph database or a full drawing application, so it offers no query language or storage engine of its own. Its integer-index model can surprise users who expect stable external identifiers, and reliance on a compiled C core means installation historically depended on build toolchains, though modern binary wheels and CRAN packages have largely eased this.

Graph Formats(Input & Output)

Output Formats

Frequently Asked Questions

What graph file formats does igraph support?

See the list on this page — it shows every format igraph can read, write and display.

How do I import a graph into igraph?

Convert your file to a format igraph can read, then open it in igraph. Use GraphInOut to get a igraph-compatible file in seconds.

How do I convert a file so igraph can open it?

Use the convert links above — upload or paste your graph, pick a format igraph accepts and download the result, right in your browser.