예제 #1
0
    def print_graph(self, special_nodes):
        G = nx.Graph()
        self.get_graph(self.root, G)
        poss = hierarchy_pos(G, self.root.val[1])
        nx.draw_networkx(G, pos=poss, default=True, node_color='y')

        plt.show()
예제 #2
0
    def print_graph(self, special_nodes):
        G = nx.Graph()
        self.get_graph(self.root, G)
        poss = hierarchy_pos(G, self.root.val[1])
        nx.draw_networkx(G, pos=poss, default=True, node_color='y')

        plt.show()
예제 #3
0
    def print_graph(self, pts, leaves, v_div, special_nodes=None):
        G = nx.Graph()
        self.get_graph(self.root, G)
        poss = hierarchy_pos(G, self.root.val[0], dim=1)

        from pylab import rcParams
        rcParams['figure.figsize'] = 20, 10

        if special_nodes:
            nx.draw_networkx_nodes(G,
                                   pos=poss,
                                   nodelist=special_nodes,
                                   node_color='b',
                                   node_size=900)

        nx.draw_networkx(G,
                         pos=poss,
                         default=True,
                         node_color='y',
                         with_labels=False)

        if v_div.is_leaf():
            nx.draw_networkx_nodes(G,
                                   poss,
                                   nodelist=[v_div.val],
                                   size=500,
                                   color='r2')
        else:
            nx.draw_networkx_nodes(G,
                                   poss,
                                   nodelist=[v_div.val[0]],
                                   size=500,
                                   color='r2')

        internal = []
        for x in pts:
            if x in leaves:
                a, b = poss[x]
                plt.text(a,
                         b - 0.08,
                         s=str(x[0]) + ', ' + str(x[1]),
                         bbox=dict(facecolor='red', alpha=0.5),
                         horizontalalignment='center')
            else:
                internal.append(x)
        labs = {}

        for k, v in poss.items():
            if type(k) == int:
                labs[k] = poss[k]
            else:
                labs[k] = (200, 200)
        nx.draw_networkx_labels(G, pos=labs)
        plt.show()
 def plot_firewall_rule_tree(self, file_name='img/firewall_rule_tree.png'):
     plt.figure(figsize=(16, 16))
     tree = self.tree
     pos = hierarchy_pos(tree)
     nx.draw(tree, pos, with_labels=True)
     nx.draw_networkx_edge_labels(tree,
                                  pos,
                                  rotate=False,
                                  edge_labels=nx.get_edge_attributes(
                                      tree, 'range'))
     plt.savefig(file_name)
예제 #5
0
    def print_graph(self, pts, leaves, v_div, special_nodes=None):
        G = nx.Graph()
        self.get_graph(self.root, G)
        poss = hierarchy_pos(G, self.root.val[0], dim=1)

        from pylab import rcParams
        rcParams['figure.figsize'] = 20, 10

        if special_nodes:
            nx.draw_networkx_nodes(G, pos=poss, nodelist=special_nodes, node_color='b',node_size=900)


        nx.draw_networkx(G, pos=poss, default=True, node_color='y', with_labels=False)

        if v_div.is_leaf():
            nx.draw_networkx_nodes(G, poss, nodelist=[v_div.val], size = 500, color='r2')
        else:
            nx.draw_networkx_nodes(G, poss, nodelist=[v_div.val[0]], size = 500, color='r2')


        internal = []
        for x in pts:
            if x in leaves:
                a, b = poss[x]
                plt.text(a,b-0.08,s=str(x[0]) + ', ' + str(x[1]), bbox=dict(facecolor='red', alpha=0.5),horizontalalignment='center')
            else:
                internal.append(x)
        labs = {}



        for k, v in poss.items():
            if type(k) == int:
                labs[k] = poss[k]
            else:
                labs[k] = (200,200)
        nx.draw_networkx_labels(G, pos=labs)
        plt.show()