Exemple #1
0
    def plot_tree_with_graphvis(self,
                                title="",
                                graph=None,
                                nodes_plotted=None,
                                file="temp",
                                view=False):
        file = os.path.join(DataManager.get_Graphs_folder(), file)

        if graph is None:
            graph = graphviz.Digraph(comment=title)

        if nodes_plotted is None:
            nodes_plotted = set()
        else:
            if self in nodes_plotted:
                return

        nodes_plotted.add(self)

        prefix = 'INPUT\n' if self.is_input_node() else (
            "OUTPUT\n" if self.is_output_node() else '')
        graph.node(self.traversal_id, (prefix + self.get_layer_type_name()),
                   style="filled",
                   fillcolor=self.get_plot_colour(include_shape=False))
        for child in self.children:
            child.plot_tree_with_graphvis(graph=graph,
                                          nodes_plotted=nodes_plotted)
            graph.edge(self.traversal_id, child.traversal_id)

        if self.is_input_node():
            graph.render(file, view=view)
    def plot_tree_with_graphvis(self,
                                title="",
                                file="temp_g",
                                view=False,
                                graph=None,
                                return_graph_obj=False,
                                node_prefix=""):

        file = os.path.join(DataManager.get_Graphs_folder(), file)

        if graph is None:
            graph = graphviz.Digraph(comment=title)

        for node in self._nodes.values():
            graph.node(node_prefix + str(node.id),
                       node.get_node_name(),
                       style="filled",
                       fillcolor="white")

        for c in self._connections.values():
            if not c.enabled():
                continue
            graph.edge(node_prefix + repr(c.from_node),
                       node_prefix + repr(c.to_node))

        graph.render(file, view=view)
        if return_graph_obj:
            return graph
Exemple #3
0
 def plot_all_representatives(self):
     graph = None
     for spec in self.species:
         graph = spec.representative.plot_tree_with_graphvis(
             graph=graph,
             return_graph_obj=True,
             view=False,
             node_prefix=repr(self.species.index(spec)) + "_")
     file = os.path.join(DataManager.get_Graphs_folder(), "reps")
     graph.render(file, view=True)