代码语言:javascript复制
from graphviz import Graph
g = Graph('G', filename='g_c_n.gv')
g.attr(bgcolor='purple:pink', label='agraph', fontcolor='white')
with g.subgraph(name='cluster1') as c:
c.attr(fillcolor='blue:cyan', label='acluster', fontcolor='white',
style='filled', gradientangle='270')
c.attr('node', shape='box', fillcolor='red:yellow',
style='filled', gradientangle='90')
c.node('anode')
g.view()
from graphviz import Digraph
g = Digraph('G', filename='cluster_edge.gv')
g.attr(compound='true')
with g.subgraph(name='cluster0') as c:
c.edges(['ab', 'ac', 'bd', 'cd'])
with g.subgraph(name='cluster1') as c:
c.edges(['eg', 'ef'])
g.edge('b', 'f', lhead='cluster1')
g.edge('d', 'e')
g.edge('c', 'g', ltail='cluster0', lhead='cluster1')
g.edge('c', 'e', ltail='cluster0')
g.edge('d', 'h')
g.view()
from graphviz import Digraph
t = Digraph('TrafficLights', filename='traffic_lights.gv', engine='neato')
t.attr('node', shape='box')
for i in (2, 1):
t.node('gy%d' % i)
t.node('yr%d' % i)
t.node('rg%d' % i)
t.attr('node', shape='circle', fixedsize='true', width='0.9')
for i in (2, 1):
t.node('green%d' % i)
t.node('yellow%d' % i)
t.node('red%d' % i)
t.node('safe%d' % i)
for i, j in [(2, 1), (1, 2)]:
t.edge('gy%d' % i, 'yellow%d' % i)
t.edge('rg%d' % i, 'green%d' % i)
t.edge('yr%d' % i, 'safe%d' % j)
t.edge('yr%d' % i, 'red%d' % i)
t.edge('safe%d' % i, 'rg%d' % i)
t.edge('green%d' % i, 'gy%d' % i)
t.edge('yellow%d' % i, 'yr%d' % i)
t.edge('red%d' % i, 'rg%d' % i)
t.attr(overlap='false')
t.attr(label=r'PetriNet Model TrafficLightsn'
r'Extracted from ConceptBase and layed out by Graphviz')
t.attr(fontsize='12')
t.view()
from graphviz import Digraph
g = Digraph('G', filename='hello.gv')
g.edge('Hello', 'World')
g.view()