---------- Pygraphviz ---------- Pygraphviz Short Tutorial ------------------------- See the examples for sample usage and ideas https://networkx.lanl.gov/browser/pygraphviz/trunk/doc/examples/ There is a complete reference guide at https://networkx.lanl.gov/reference/pygraphviz/ The API is very similar to that of NetworkX. Most of the NetworkX tutorial at https://networkx.lanl.gov/wiki/Tutorial is applicable to pygraphviz. See the API notes https://networkx.lanl.gov/wiki/pygraphviz/API/ for major differences. Start-up -------- Import pygraphviz with >>> import pygraphviz or to bring into the current namespace without the pygraphviz prefix >>> from pygraphviz import * Graphs ------ To make an empty pygraphviz graph use the AGraph class: >>> G=AGraph() You can use the strict and directed keywords to control what type of graph you want. The default is to create a strict graph (no parallel edges or self-loops). To create a digraph with possible parallel edges and self-loops use >>> G=AGraph(strict=False,directed=True) You may specify a dot format file to be read on initialization: >>> G=AGraph("Petersen.dot") Nodes, and edges ---------------- Nodes and edges can be added one at a time >>> G.add_node('a') # adds node 'a' >>> G.add_edge('b','c') # adds edge 'b'-'c' (and also nodes 'b', 'c') or from lists or containers. >>> nodelist=['f','g','h'] >>> G.add_nodes_from(nodelist) If the node is not a string an attempt will be made to convert it to a string >>> G.add_node(1) # adds node '1' Attributes ---------- To set the default attributes for graphs, nodes, and edges use the graph_attr, node_attr, and edge_attr dictionaries >>> G.graph_attr['label']='Name of graph' >>> G.node_attr['shape']='circle' >>> G.edge_attr['color']='red' Individual node and edge attributes can be set through their attr dictionary >>> n=G.get_node(1) >>> n.attr['shape']='box' >>> e=G.get_edge('b','c') >>> e.attr['color']='green' Layout and Drawing ------------------ Pygraphviz provides several methods for layout and drawing of graphs. To store and print the graph in dot format as a Python string use >>> s=G.string() >>> print s To write to a file use >>> G.write("file.dot") To add positions to the nodes with a Graphviz layout algorithm >>> G.layout() # default to neato >>> G.layout(prog='dot') # use dot To render the graph to an image >>> G.draw('file.png') # write previously positioned graph to PNG file >>> G.draw('file.ps',prog='circo') # use circo to position, write PS file