예제 #1
0
def draw_graph(aData):
    g = gv.digraph("G")

    #gv.setv(g, "label", "TEST")
    #gv.setv(g, "rankdir", "LR")

    # Set node style
    #n = gv.protonode(g0)
    #gv.setv(n, "shape", "ellipse")

    # draw notes
    draw_note(g)

    # draw one common node: swith
    #draw_node(g, "swith", "swith", "swith")

    # draw subgraph
    for key in aData:
        (aHost, aNodes, aLinks) = key
        draw_host(g, aHost, aNodes, aLinks)

    # save file
    gv.write(g, "draw.dot")

    #generate graphic
    gv.layout(g, "dot")
    gv.render(g, "png", "l2_topology.png")
    gv.rm(g)
예제 #2
0
def draw_graph(aData):
    g = gv.digraph("G")

    #gv.setv(g, "label", "TEST")
    #gv.setv(g, "rankdir", "LR")

    # Set node style
    #n = gv.protonode(g0)
    #gv.setv(n, "shape", "ellipse")

    # draw notes
    draw_note(g)

    # draw one common node: swith
    #draw_node(g, "swith", "swith", "swith")

    # draw subgraph
    for key in aData:
        (aHost, aNodes, aLinks) = key
        draw_host(g, aHost, aNodes, aLinks)

    # save file
    gv.write(g, "draw.dot")

    #generate graphic
    gv.layout(g, "dot")
    gv.render(g, "png", "l2_topology.png")
    gv.rm(g)
예제 #3
0
def render_graph(g, filename, output_dot = None):
    gv.setv(g, 'center', 'true')
    gv.setv(g, 'fontname', 'helvetica')
    gv.layout(g, 'dot')
    
    if (output_dot):
        gv.write(g, output_dot)
    
    gv.render(g, 'png', filename) 
예제 #4
0
파일: rusht.py 프로젝트: thesues/rush
    def out_graph(self):
        if self.depth > 1:
            self.generate_graph(1,0)
        else:
            first_node = self.get_node(1,0)
            n = gv.node(self.G, first_node.string())
            gv.setv(n, "label", "%s|%d" % (first_node.string(), first_node.weight))

        gv.layout(self.G, 'dot')
        #gv.render(self.G, 'xlib')
        gv.write(self.G, "tree.dot")
예제 #5
0
def testGraph():
    gr = graph()
    gr.add_nodes([
        "Portugal", "Spain", "France", "Germany", "Belgium", "Netherlands",
        "Italy"
    ])
    gr.add_nodes([
        "Switzerland", "Austria", "Denmark", "Poland", "Czech Republic",
        "Slovakia", "Hungary"
    ])
    gr.add_nodes(["England", "Ireland", "Scotland", "Wales"])

    gr.add_edge("Portugal", "Spain")
    gr.add_edge("Spain", "France")
    gr.add_edge("France", "Belgium")
    gr.add_edge("France", "Germany")
    gr.add_edge("France", "Italy")
    gr.add_edge("Belgium", "Netherlands")
    gr.add_edge("Germany", "Belgium")
    gr.add_edge("Germany", "Netherlands")
    gr.add_edge("England", "Wales")
    gr.add_edge("England", "Scotland")
    gr.add_edge("Scotland", "Wales")
    gr.add_edge("Switzerland", "Austria")
    gr.add_edge("Switzerland", "Germany")
    gr.add_edge("Switzerland", "France")
    gr.add_edge("Switzerland", "Italy")
    gr.add_edge("Austria", "Germany")
    gr.add_edge("Austria", "Italy")
    gr.add_edge("Austria", "Czech Republic")
    gr.add_edge("Austria", "Slovakia")
    gr.add_edge("Austria", "Hungary")
    gr.add_edge("Denmark", "Germany")
    gr.add_edge("Poland", "Czech Republic")
    gr.add_edge("Poland", "Slovakia")
    gr.add_edge("Poland", "Germany")
    gr.add_edge("Czech Republic", "Slovakia")
    gr.add_edge("Czech Republic", "Germany")
    gr.add_edge("Slovakia", "Hungary")

    # Draw as PNG
    with open("./country.viz", 'wb') as f:
        dot = write(gr, f)
        f.write(dot)
        gvv = gv.readstring(dot)
        gv.layout(gvv, 'dot')
        gv.render(gvv, 'png', 'europe.png')
        Image.open('europe.png').show()
예제 #6
0
def testGraph():
    gr = graph()
    gr.add_nodes(["Portugal","Spain","France","Germany","Belgium","Netherlands","Italy"])
    gr.add_nodes(["Switzerland","Austria","Denmark","Poland","Czech Republic","Slovakia","Hungary"])
    gr.add_nodes(["England","Ireland","Scotland","Wales"])
    
    gr.add_edge("Portugal", "Spain")
    gr.add_edge("Spain","France")
    gr.add_edge("France","Belgium")
    gr.add_edge("France","Germany")
    gr.add_edge("France","Italy")
    gr.add_edge("Belgium","Netherlands")
    gr.add_edge("Germany","Belgium")
    gr.add_edge("Germany","Netherlands")
    gr.add_edge("England","Wales")
    gr.add_edge("England","Scotland")
    gr.add_edge("Scotland","Wales")
    gr.add_edge("Switzerland","Austria")
    gr.add_edge("Switzerland","Germany")
    gr.add_edge("Switzerland","France")
    gr.add_edge("Switzerland","Italy")
    gr.add_edge("Austria","Germany")
    gr.add_edge("Austria","Italy")
    gr.add_edge("Austria","Czech Republic")
    gr.add_edge("Austria","Slovakia")
    gr.add_edge("Austria","Hungary")
    gr.add_edge("Denmark","Germany")
    gr.add_edge("Poland","Czech Republic")
    gr.add_edge("Poland","Slovakia")
    gr.add_edge("Poland","Germany")
    gr.add_edge("Czech Republic","Slovakia")
    gr.add_edge("Czech Republic","Germany")
    gr.add_edge("Slovakia","Hungary")
    
    # Draw as PNG
    with open("./country.viz", 'wb') as f:
        dot = write(gr,f)
        f.write(dot)
        gvv = gv.readstring(dot)
        gv.layout(gvv,'dot')
        gv.render(gvv,'png','europe.png') 
        Image.open('europe.png').show()
예제 #7
0
graph = gv.digraph('filegraph')


for dirpath, dirnames, filenames in os.walk('src'):
    
    try:
        subgraph = subgraphs[clean(dirpath)]
    except:
        subgraph = gv.graph(graph, 'cluster_' + clean(dirpath))
        gv.setv(subgraph, 'label', dirpath)
        subgraphs[clean(dirpath)] = subgraph
    
    print clean(dirpath)
    print dirnames
    print filenames

    for filename in filenames:
        node = gv.node(subgraph, clean(filename))
        gv.setv(node, 'label', filename)


    for dirname in dirnames:
        subgraphfun(subgraph, clean(os.path.join(dirpath,dirname)), dirname)

gv.write(graph, 'graph.dot')

os.system('dot -Tpdf -ograph.pdf graph.dot')
#os.system('neato -Tpdf -ofilegraph.pdf filegraph.dot')
    
예제 #8
0
    return ok

if __name__ == "__main__":
    name = sys.argv[1]
    if name[-4:] != '.dot':
        print "wrong name", name
        exit
    name = name[:-4]
    gr = gv.read(name + '.dot')
    m = gv.findnode(gr, 'main')
    gv.setv(m, 'color', 'green')
    while mark():
        pass
    n = gv.firstnode(gr)
    while gv.ok(n):
        if gv.getv(n, 'color') != 'green':
            gv.setv(n, 'fillcolor', 'red')
            gv.setv(n, 'style', 'filled')
        in_degree = 0
        e = gv.firstin(n)
        while gv.ok(e):
            in_degree += 1
            e = gv.nextin(n, e)
        if in_degree == 1:
            gv.setv(n, 'shape', 'diamond')
        n = gv.nextnode(gr, n)
    gv.write(gr, name + '-new.dot')
    gv.layout(gr, 'dot')
    gv.render(gr)
    gv.render(gr, 'fig', name + '.fig')