Attributes ========== >>> from pygraphviz import * Graph Defaults -------------- >>> A=AGraph() >>> A.graph_attr['label']='test' >>> A.graph_attr['spam']='eggs' >>> 'label' in A.graph_attr True >>> A.graph_attr['label'] u'test' >>> A.graph_attr.keys() [u'label', u'spam'] >>> sorted(list(A.graph_attr.iteritems())) [(u'label', u'test'), (u'spam', u'eggs')] >>> print A.string().expandtabs(2) strict graph { graph [label=test, spam=eggs ]; } >>> A.graph_attr['label']='' >>> A.graph_attr['spam']='' >>> print A.string().expandtabs(2) strict graph { } >>> A.graph_attr['label']='test' >>> del A.graph_attr['label'] >>> print A.string().expandtabs(2) strict graph { } >>> A=AGraph(rankdir='LR',pack='true') >>> print A.string().expandtabs(2) strict graph { graph [pack=true, rankdir=LR ]; } Node Defaults -------------- >>> A=AGraph() >>> A.node_attr['label']='test' >>> 'label' in A.node_attr True >>> A.node_attr['label'] u'test' >>> A.node_attr.keys() [u'label'] >>> A.node_attr {u'label': u'test'} >>> list(A.node_attr.iteritems()) [(u'label', u'test')] >>> print A.string().expandtabs(2) strict graph { node [label=test]; } >>> A.node_attr['label']='' >>> print A.string().expandtabs(2) strict graph { } >>> A.node_attr['label']='test' >>> del A.node_attr['label'] >>> print A.string().expandtabs(2) strict graph { } >>> A.graph_attr['fontname'] = 'graph font' >>> A.node_attr['fontname'] = 'node font' >>> A.edge_attr['fontname'] = 'edge font' >>> print A.string().expandtabs(2) strict graph { graph [fontname="graph font"]; node [fontname="node font"]; edge [fontname="edge font"]; } Edge Defaults -------------- >>> A=AGraph() >>> A.edge_attr['label']='test' >>> 'label' in A.edge_attr True >>> A.edge_attr['label'] u'test' >>> A.edge_attr.keys() [u'label'] >>> A.edge_attr {u'label': u'test'} >>> list(A.edge_attr.iteritems()) [(u'label', u'test')] >>> print A.string().expandtabs(2) strict graph { edge [label=test]; } >>> A.edge_attr['label']='' >>> print A.string().expandtabs(2) strict graph { } >>> A.edge_attr['label']='test' >>> del A.edge_attr['label'] >>> print A.string().expandtabs(2) strict graph { } Individual node attributes -------------------------- >>> A=AGraph() >>> A.add_node(1,label='test',spam='eggs') >>> print A.string().expandtabs(2) strict graph { node [label="\N"]; 1 [label=test, spam=eggs]; } >>> A=AGraph() >>> A.add_node(1) >>> one=A.get_node(1) >>> one.attr['label']='test' >>> one.attr['spam']='eggs' >>> 'label' in one.attr True >>> one.attr['label'] u'test' >>> sorted(one.attr.keys()) [u'label', u'spam'] >>> print A.string().expandtabs(2) strict graph { node [label="\N"]; 1 [label=test, spam=eggs]; } >>> one.attr['label']='' >>> one.attr['spam']='' >>> print A.string().expandtabs(2) strict graph { node [label="\N"]; 1 [label=""]; } >>> one.attr['label']='test' >>> del one.attr['label'] >>> print A.string().expandtabs(2) strict graph { node [label="\N"]; 1 [label=""]; } Individual edge attributes -------------------------- >>> A=AGraph() >>> A.add_edge(1,2,label='test',spam='eggs') >>> print A.string().expandtabs(2) strict graph { 1 -- 2 [label=test, spam=eggs]; } >>> A=AGraph() >>> A.add_edge(1,2) >>> one=A.get_edge(1,2) >>> one.attr['label']='test' >>> one.attr['spam']='eggs' >>> 'label' in one.attr True >>> one.attr['label'] u'test' >>> sorted(one.attr.keys()) [u'label', u'spam'] >>> print A.string().expandtabs(2) strict graph { 1 -- 2 [label=test, spam=eggs]; } >>> one.attr['label']='' >>> one.attr['spam']='' >>> print A.string().expandtabs(2) strict graph { 1 -- 2; } >>> one.attr['label']='test' >>> del one.attr['label'] >>> print A.string().expandtabs(2) strict graph { 1 -- 2; } Anonymous edges and attributes ------------------------------ >>> d="""graph test {\n a -- b [label="edge1"];\n a -- b [label="edge2"];\n }""" >>> import os,tempfile >>> (fd,fname)=tempfile.mkstemp() >>> fh=open(fname,'w') >>> fh.write(d) >>> fh.close() >>> A=AGraph(fname) >>> print A.string().expandtabs(2) graph test { a -- b [label=edge1]; a -- b [label=edge2]; } HTML ---- >>> G = AGraph(label='Graph>') >>> G.add_node('a', label='Node>') >>> s = G.add_subgraph('b', label='Subgraph>') >>> s.add_node('sa', label='Subgraph Node b>') >>> G.add_edge('a','b', label='Edge>') >>> print G.string().expandtabs(2) strict graph { graph [label=Graph>]; node [label="\N"]; { graph [label=Subgraph>]; sa [label=Subgraph Node b>]; } a [label=Node>]; a -- b [label=Edge>]; } Subgraphs --------- >>> G = AGraph(label='foo') >>> s = G.subgraph('cluster_a', label='World>') >>> s.add_node('sa') >>> G.add_node('a') >>> print G.string().expandtabs(2) strict graph { graph [label=foo]; { graph [label=World>]; sa; } a; } >>> G = AGraph() >>> s = G.subgraph(name='cluster_a') >>> s.node_attr['foo']='bar' >>> G.add_node('a') >>> G.node_attr['foo']='baz' >>> print G.string().expandtabs(2) strict graph { node [foo=baz]; subgraph cluster_a { graph [foo=bar]; } a; }