예제 #1
0
 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))
예제 #2
0
    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)
예제 #3
0
    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)
예제 #4
0
    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