NetworkX is a Python-based package for the creation, manipulation, and study of the structure, dynamics, and functions of complex networks. The structure of a graph or network is encoded in the edges (connections, links, ties, arcs, bonds) between nodes (vertices, sites, actors). If unqualified, by graph we mean a simple undirected graph, i.e. no self-loops and no multiple edges are allowed. By a network we usually mean a graph with weights (fields, properties) on nodes and/or edges. The potential audience for NetworkX includes: mathematicians, physicists, biologists, computer scientists, social scientists.