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
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)