def show(self, **options):
    'Shows the graph using matplotlib and networkx'
    defaults = {'descriptions': False, 'edge_descriptions': False, 'save_plot': False, 'path': None, 'active_node': True, 'directory': None, 'specific_descriptor': self.graph_name.replace(' ', '_'), 'general_descriptor': 'plot', 'file_name': None, 'arrows': True, 'node_size': 1000, 'font_size': 10, 'fix_layout': True}
    show_options = {}
    for (key, value) in defaults.items():
        show_options[key] = value
    for (key, value) in options.items():
        show_options[key] = value
    if (show_options['directory'] is None):
        show_options['directory'] = os.getcwd()
    if show_options['active_node']:
        node_colors = []
        for node in self.display_graph.nodes():
            if (node == self.current_node):
                node_colors.append('b')
            elif (node in self.node_names):
                node_colors.append('r')
            elif (node in self.external_node_names):
                node_colors.append('g')
    else:
        node_colors = (['r' for node in self.node_names] + ['g' for node in self.node_names])
    if show_options['descriptions']:
        node_labels = {node: self.node_descriptions[index] for (index, node) in enumerate(self.node_names)}
        if self.external_node_names:
            for (index, node) in enumerate(self.external_node_names):
                node_labels[node] = self.external_node_descriptions[index]
        networkx.draw_networkx(self.display_graph, arrows=show_options['arrows'], labels=node_labels, node_color=node_colors, node_size=show_options['node_size'], font_size=show_options['font_size'], pos=self.display_layout)
    else:
        networkx.draw_networkx(self.display_graph, arrows=show_options['arrows'], node_color=node_colors, node_size=show_options['node_size'], font_size=show_options['font_size'], pos=self.display_layout)
    plt.axis('off')
    plt.suptitle(self.options['graph_name'])
    if (show_options['file_name'] is None):
        file_name = auto_name(specific_descriptor=show_options['specific_descriptor'], general_descriptor=show_options['general_descriptor'], directory=show_options['directory'], extension='png', padding=3)
    else:
        file_name = show_options['file_name']
    if show_options['save_plot']:
        if show_options['path']:
            plt.savefig(show_options['path'])
        else:
            plt.savefig(os.path.join(show_options['directory'], file_name))
    else:
        plt.show()
        fig = plt.gcf()
        return fig
Shows the graph using matplotlib and networkx
def show(self, **options):
    
    defaults = {'descriptions': False, 'edge_descriptions': False, 'save_plot': False, 'path': None, 'active_node': True, 'directory': None, 'specific_descriptor': self.graph_name.replace(' ', '_'), 'general_descriptor': 'plot', 'file_name': None, 'arrows': True, 'node_size': 1000, 'font_size': 10, 'fix_layout': True}
    show_options = {}
    for (key, value) in defaults.items():
        show_options[key] = value
    for (key, value) in options.items():
        show_options[key] = value
    if (show_options['directory'] is None):
        show_options['directory'] = os.getcwd()
    if show_options['active_node']:
        node_colors = []
        for node in self.display_graph.nodes():
            if (node == self.current_node):
                node_colors.append('b')
            elif (node in self.node_names):
                node_colors.append('r')
            elif (node in self.external_node_names):
                node_colors.append('g')
    else:
        node_colors = (['r' for node in self.node_names] + ['g' for node in self.node_names])
    if show_options['descriptions']:
        node_labels = {node: self.node_descriptions[index] for (index, node) in enumerate(self.node_names)}
        if self.external_node_names:
            for (index, node) in enumerate(self.external_node_names):
                node_labels[node] = self.external_node_descriptions[index]
        networkx.draw_networkx(self.display_graph, arrows=show_options['arrows'], labels=node_labels, node_color=node_colors, node_size=show_options['node_size'], font_size=show_options['font_size'], pos=self.display_layout)
    else:
        networkx.draw_networkx(self.display_graph, arrows=show_options['arrows'], node_color=node_colors, node_size=show_options['node_size'], font_size=show_options['font_size'], pos=self.display_layout)
    plt.axis('off')
    plt.suptitle(self.options['graph_name'])
    if (show_options['file_name'] is None):
        file_name = auto_name(specific_descriptor=show_options['specific_descriptor'], general_descriptor=show_options['general_descriptor'], directory=show_options['directory'], extension='png', padding=3)
    else:
        file_name = show_options['file_name']
    if show_options['save_plot']:
        if show_options['path']:
            plt.savefig(show_options['path'])
        else:
            plt.savefig(os.path.join(show_options['directory'], file_name))
    else:
        plt.show()
        fig = plt.gcf()
        return fig