43 self, graph_type='digraph', rank='same',
44 simplify=True, rankdir='TB', ranksep=0.2, compound=True):
45 graph = pygraphviz.AGraph(
46 directed=(graph_type ==
'digraph'), ranksep=ranksep, rankdir=rankdir,
47 rank=rank, compound=
True, simplify=simplify)
59 Create a node item for this factory, adds it to the graph.
61 Node name can vary from label but must always be same for the same node label
63 if nodename
is None or nodename ==
'':
64 raise ValueError(
'Empty Node name')
69 if tooltip
is not None:
70 kwargs[
'tooltip'] = tooltip
72 kwargs[
'color'] = color
74 graph.add_node(nodename, label=str(nodelabel), shape=shape, url=url, **kwargs)
88 Create a cluster subgraph item for this factory, adds it to the graph.
90 Cluster name can vary from label but must always be same for the same node label.
91 Most layouters require cluster names to start with cluster.
93 if subgraphlabel
is None or subgraphlabel ==
'':
94 raise ValueError(
'Empty subgraph label')
96 sg = graph.add_subgraph(
97 name=
'cluster_%s' % subgraphlabel, ranksep=ranksep, rankdir=rankdir,
98 rank=rank, compound=compound, label=str(subgraphlabel), style=style, color=color)
103 self, graph, nodename1, nodename2, label=None, url=None, simplify=True, style=None):
104 kwargs = {
'url': url}
105 if label
is not None:
106 kwargs[
'label'] = label
107 if style
is not None:
108 kwargs[
'style'] = style
109 graph.add_edge(nodename1, nodename2, **kwargs)
114 return graph.string().replace(
'\\\n',
'')