ここで、次のコードでは、頂点に割り当てられた色を取得しますが、ボックス 'l' の長さには意味がありません
ボックスの長さに応じて色を割り当てる必要があり、関数はネットワーク内の異なる色の数を出力する必要があるため、それを使用して、法律に従って現実世界のネットワークのフラクタル次元を決定できます。
N B ~ l B -d B
これを達成するのを手伝ってください。
ファイル dolphin には、エッジの両端を表す 2 つの列が含まれています。
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()