- Easily create directed or undirected graphs and manipulate
them in an arbitrary fashion, using the convenience and expressiveness of the
- Associate arbitrary information to the vertices, edges or even the
graph itself, by means of property maps.
- Filter vertices
and/or edges "on the fly", such that they appear to have been removed from
the graph, but can be easily recovered.
- Instantaneously reverse the edge direction of directed graphs, and
easily transform directed graphs into undirected, and vice-versa.
- Save and load your graphs from files using the graphml, GML
and dot file
formats, which provide interoperability with other software. You can
your graphs at will!
- Conveniently draw
your graphs, using a variety of algorithms and output formats
(including to the screen). graph-tool has its own layout algorithms
and versatile, interactive drawing routines based on cairo and GTK+, but it can also work as a very
comfortable interface to the excellent graphviz package.
- Collect all sorts of statistics:
degree/property histogram, combined degree/property histogram,
vertex-vertex correlations, assortativity, average vertex-vertex
shortest distance, etc.
- Run several topological
algorithms on your graphs, such as isomorphism, minimum
spanning tree, connected components, dominator tree, maximum flow, etc.
- Generate random
graphs, with arbitrary degree distribution and degree
- Detection of topological equivalence classes and community
structure via stochastic
blockmodel inference and modularity optimization.
- Calculate clustering
coefficients, motif statistics,
- Ad-hoc compilation and execution of
C++ code, for efficient implementation of throw-away code for
- And more!