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)
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
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")
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")
def export_to_dot(self): """Exports the graph to a dot format (requires pydot library).""" return nx_pydot.to_pydot(self).to_string()
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