def generate_graph(self, graph: Digraph, sub_graphs: tuple, name): graph.format = self.img_format graph.directory = self.directory for sub_graph in sub_graphs: graph.subgraph(sub_graph) graph.render('{} {}'.format(self.file_prefix, name), None, False) print('Class diagram {} written.'.format(name))
def visualize(self, filename, path): digraph = Digraph(comment="Model") for id in self.nodes: node = self.nodes[id] digraph.node(str(id), label=f'id:{id} rank:{node.rank} shape: {node.shape}') for id in self.edges: edge = self.edges[id] digraph.edge(str(edge.src), str(edge.dest), label="id" if edge.identical else str(edge.as_layer())) digraph.format='svg' digraph.filename=filename digraph.directory=path digraph.render(view=False)
def visualize(self, path, filename): digraph = Digraph(comment="Model") for nid, node in self._nodes.items(): node = self.id_to_node(nid) digraph.node(str(nid), label=f'{nid}: {node}') for prev, next_list in self._adjacent_fwd.items(): for next in next_list: eid = self._adjacent_fwd[prev][next] edge = self.id_to_edge(eid) digraph.edge(str(prev), str(next), label=f'{eid}: {edge}') digraph.format = 'svg' digraph.filename = filename digraph.directory = path digraph.render(view=False)
def render_current_generation(self, folder_name: str): """ this function render the current generation in PNG format with some extra information :param folder_name: :return: """ g = Digraph() g.format = 'png' g.directory = folder_name + "/Generation " + str(self.generation) counter = 1 for tree in self.population: g.clear() info = '"00_comment_00" [label="G : {0}\nF : {1}\nD : {2}\nW : {3}\nn : {4}" , shape="box" , color="white"]'.format( self.generation, tree.fitness, tree.depth, tree.width, tree.number_of_nodes_in_tree) g.body.append(info) g.body.append(tree.print_graph()) g.render("Individual {0}".format(counter)) counter += 1