6

在这里,在下面的代码中,我得到了分配给顶点的颜色,但是对于框 'l' 的长度没有意义

我希望根据盒子的长度分配颜色,并且函数应该输出网络中不同颜色的数量,这样我就可以根据法律使用它来确定现实世界网络的分形维数,

N B ~ l B -d B

请帮助我实现这一目标。

文件 dolphin 包含两列,每列代表一条边的两端。

import networkx as nx
import matplotlib.pyplot as plt
G=nx.Graph()

colors = ['c1', 'c2', 'c3', 'c4',  'c5', 'c6', 'c7', 'c8', 'c9', 'c10', 'c11', 'c12']

f = open("real_network/dolphin")
a = [int(n) for n in f.read().split()]
G.add_nodes_from(a)

i = 0
b = []
while i<len(a):
    b.append((a[i],a[i+1]))
    i = i+2

#print b

G.add_edges_from(b)
colors_of_nodes={}


def coloring(node, color):
    for neighbor in G.neighbors(node):
        color_of_neighbor = colors_of_nodes.get(neighbor, None)
        if color_of_neighbor == color:
            return False

    return True

def get_color_for_node(node):
    for color in colors:
        if coloring(node, color):
            return color

def main():
    for node in G.nodes():
        colors_of_nodes[node] = get_color_for_node(node)

    print colors_of_nodes


main()
4

0 回答 0