Example #1
0
def draw_network(graph, filename = 'network.png', show = False, verbose = 2 ):
    """
    This is a simple wrapper to the networkx_draw.

    Args:
        graph: Supply a networkx graph object. NNs are all DiGraphs. 
        filename: what file to save down as. Will add '.png' to the end.
        verbose: Do I even have to talk about this ?
        
    Notes:
        Takes any format that networkx plotter takes. This is not ready to be used. Still buggy 
        sometimes.
        Rudra is working on developing this further internally.
        This is slow at the moment.
    """
    if verbose >=2:
        print ".. Saving the network down as an image"
    # convert from networkx -> pydot
    if verbose >=3 :
        print "... Coverting to dot"
    dot= to_pydot(graph)
    dot.set_node_defaults(style="filled", fillcolor="grey")
    dot.set_edge_defaults(color="blue", arrowhead="vee", weight="0")    
    if verbose >=3 :
        print "... Writing down"
    dot.write_png(filename)
Example #2
0
    def draw(self, name='goto'):
        g = nx.MultiDiGraph()
        lr_content = {}
        for k, v in self.progress_present.iteritems():
            label = 'I %d\n' % k

            for rule in v:
                break
                label += rule[0] + ' --> '
                for r in rule[1]:
                    if r == u'dot':
                        label += '^ '
                    else:
                        label += r + ' '
                label += '\n'
            lr_content[k] = label

        for k, v in self.state_present.iteritems():
            for edge, to in v.iteritems():
                g.add_edge(lr_content[k], lr_content[to], label=edge)

        g_str = to_pydot(g).to_string()
        g = pydot.graph_from_dot_data(g_str)
        g[0].write_jpg('graph/%s.jpg' % name)
        print '%s图生成成功!' % name
Example #3
0
    def draw(self, name='dfa'):
        g = nx.MultiDiGraph()
        for id, path in self.s_DFA.iteritems():
            for label, to_id in path.iteritems():
                g.add_edge(id, to_id, label=label)

        g_str = to_pydot(g).to_string()
        g = pydot.graph_from_dot_data(g_str)
        g[0].write_jpg('graph/%s.jpg' % name)
        print '%s图生成成功!'%name
def save_graph_img(graph, file):
    """ generate a dot file and a image from graph """
    from networkx.drawing.nx_pydot import to_pydot
    for node, data in graph.nodes(data=True):
        if "cpu" in data:
            data["xlabel"] = "cpu "+ str(data["cpu"])
        data["shape"] = "circle"
    P = to_pydot(graph)  #
    for edge in P.get_edges():
        edge.set_label(edge.get_attributes()["payload"])
    P.write_png(file + ".png")
Example #5
0
                if node == i:
                    yield i
                    break
        vis.append(node)
        for i in nx.all_neighbors(self.stations, node):
            if i not in vis:
                for j in self.neighbors(i, depth-1, vis):
                    yield j

class PumpStation:
    def __init__(self, code):
        self.code = code

    def __str__(self):
        return "Pump station:\n" \
               "\tCode: {}\n".format(self.code)

    def __hash__(self):
        return hash(self.code)

    def __eq__(self, other):
        if type(other) == str:
            return self.code == other
        return self.code == other.code

stations = StationNetwork()

if __name__ == "__main__":
    import networkx.drawing.nx_pydot as pydot
    pydot.to_pydot(stations.stations).write_png("hi.png", prog="fdp")
Example #6
0
 def export_to_dot(self):
     """Exports the graph to a dot format (requires pydot library)."""
     return nx_pydot.to_pydot(self).to_string()
Example #7
0
    def draw(self, name='nfa'):

        g_str = to_pydot(self.graph).to_string()
        g = pydot.graph_from_dot_data(g_str)
        g[0].write_jpg('graph/%s.jpg' % name)
        print '%s图生成成功!' % name