コード例 #1
0
def write_cluster_csv(btw_data, graph_data, file_pre):
	clusters = {}
	iqr_vals = []
	for q in btw_data.keys():
		iqr_vals.append(q)

	for n in graph_data[iqr_vals[0]].nodes:
		if graph_data[iqr_vals[0]].nodes[n]["cluster"] not in clusters:
			clusters[graph_data[iqr_vals[0]].nodes[n]["cluster"]] = 1
		else:
			clusters[graph_data[iqr_vals[0]].nodes[n]["cluster"]] += 1
	retstr = 'cluster, size, group_betweenness_centrality_25, group_betweenness_centrality_50, group_betweenness_centrality_75\n'
	for c in clusters:
		cnodes = [x for x,y in graph_data[iqr_vals[0]].nodes(data=True) if y['cluster']== c]
		c_obj = {
			"cluster" : c,
			"size" : clusters[c],
			"group_betweenness_25" : nx.group_betweenness_centrality(graph_data[iqr_vals[0]], cnodes, weight="score"),
			"group_betweenness_50" : 0,#nx.group_betweenness_centrality(graph_data[iqr_vals[1]], cnodes, weight="score"),
			"group_betweenness_75" : 0#nx.group_betweenness_centrality(graph_data[iqr_vals[2]], cnodes, weight="score")
		}
		lstr = '{}, {}, {}, {}, {}\n'.format(c_obj["cluster"], c_obj["size"], c_obj["group_betweenness_25"], c_obj["group_betweenness_50"], c_obj["group_betweenness_75"])
		retstr = retstr + lstr

	with open('centrality_files/' + file_pre + "_clusters.csv", 'w') as wf:
		wf.write(retstr)
	return
コード例 #2
0
ファイル: test_group.py プロジェクト: zcf900/networkx
 def test_group_betweenness_value_zero(self):
     """
     Group betweenness centrality value of 0
     """
     G = nx.cycle_graph(6)
     C = [0, 1, 5]
     b = nx.group_betweenness_centrality(G, C, weight=None)
     b_answer = 0.0
     assert b == b_answer
コード例 #3
0
 def test_group_betweenness_single_node(self):
     """
         Group betweenness centrality for single node group
     """
     G = nx.path_graph(5)
     C = [1]
     b = nx.group_betweenness_centrality(G, C, weight=None, normalized=False)
     b_answer = 3.0
     assert b == b_answer
コード例 #4
0
 def test_two_group_betweenness_value_zero(self):
     """
     Group betweenness centrality value of 0
     """
     G = nx.cycle_graph(7)
     C = [[0, 1, 6], [0, 1, 5]]
     b = nx.group_betweenness_centrality(G, C, weight=None, normalized=False)
     b_answer = [0.0, 3.0]
     assert b == b_answer
コード例 #5
0
ファイル: test_group.py プロジェクト: networkx/networkx
 def test_group_betweenness_value_zero(self):
     """
         Group betweenness centrality value of 0
     """
     G = nx.cycle_graph(6)
     C = [0, 1, 5]
     b = nx.group_betweenness_centrality(G, C, weight=None)
     b_answer = 0.0
     assert_equal(b, b_answer)
コード例 #6
0
ファイル: test_group.py プロジェクト: zcf900/networkx
 def test_group_betweenness_disconnected_graph(self):
     """
     Group betweenness centrality in a disconnected graph
     """
     G = nx.path_graph(5)
     G.remove_edge(0, 1)
     C = [1]
     b = nx.group_betweenness_centrality(G, C, weight=None)
     b_answer = 0.0
     assert b == b_answer
コード例 #7
0
ファイル: test_group.py プロジェクト: zcf900/networkx
 def test_group_betweenness_normalized(self):
     """
     Group betweenness centrality for group with more than
     1 node and normalized
     """
     G = nx.path_graph(5)
     C = [1, 3]
     b = nx.group_betweenness_centrality(G, C, weight=None, normalized=True)
     b_answer = 1.0
     assert b == b_answer
コード例 #8
0
ファイル: test_group.py プロジェクト: networkx/networkx
 def test_group_betweenness_disconnected_graph(self):
     """
         Group betweenness centrality in a disconnected graph
     """
     G = nx.path_graph(5)
     G.remove_edge(0, 1)
     C = [1]
     b = nx.group_betweenness_centrality(G, C, weight=None)
     b_answer = 0.0
     assert_equal(b, b_answer)
コード例 #9
0
ファイル: test_group.py プロジェクト: networkx/networkx
 def test_group_betweenness_single_node(self):
     """
         Group betweenness centrality for single node group
     """
     G = nx.path_graph(5)
     C = [1]
     b = nx.group_betweenness_centrality(G, C,
                                         weight=None, normalized=False)
     b_answer = 3.0
     assert_equal(b, b_answer)
コード例 #10
0
 def test_group_betweenness_with_endpoints(self):
     """
     Group betweenness centrality for single node group
     """
     G = nx.path_graph(5)
     C = [1]
     b = nx.group_betweenness_centrality(
         G, C, weight=None, normalized=False, endpoints=True
     )
     b_answer = 7.0
     assert b == b_answer
コード例 #11
0
ファイル: test_group.py プロジェクト: networkx/networkx
 def test_group_betweenness_normalized(self):
     """
         Group betweenness centrality for group with more than
         1 node and normalized
     """
     G = nx.path_graph(5)
     C = [1, 3]
     b = nx.group_betweenness_centrality(G, C,
                                         weight=None, normalized=True)
     b_answer = 1.0
     assert_equal(b, b_answer)
コード例 #12
0
def groupBetweenCentrality(G):
    pos = nx.spring_layout(G)
    gbCent = nx.group_betweenness_centrality(G)
    node_color = [20000.0 * G.degree(v) for v in G]
    node_size = [v * 10000 for v in gbCent.values()]
    plt.figure(figsize=(13, 13))
    nx.draw_networkx(G1,
                     pos=pos,
                     with_labels=False,
                     node_color=node_color,
                     node_size=node_size)
    plt.axis('off')
    #Printing Top 10 Nodes as per Closeness Centrality
    sorted_degree = sorted(gbCent, key=gbCent.get, reverse=True)[:10]
    for d in sorted_degree[:10]:
        print("Node Label: ", d, "=> Degree: ", G.degree[d])
コード例 #13
0
 def test_group_betweenness_directed_weighted(self):
     """
     Group betweenness centrality in a directed and weighted graph
     """
     G = nx.DiGraph()
     G.add_edge(1, 0, weight=1)
     G.add_edge(0, 2, weight=2)
     G.add_edge(1, 2, weight=3)
     G.add_edge(3, 1, weight=4)
     G.add_edge(2, 3, weight=1)
     G.add_edge(4, 3, weight=6)
     G.add_edge(2, 4, weight=7)
     C = [1, 2]
     b = nx.group_betweenness_centrality(G, C, weight="weight", normalized=False)
     b_answer = 5.0
     assert b == b_answer
コード例 #14
0
ファイル: test_group.py プロジェクト: zcf900/networkx
 def test_group_betweenness_node_not_in_graph(self):
     """
     Node(s) in C not in graph, raises NodeNotFound exception
     """
     with pytest.raises(nx.NodeNotFound):
         b = nx.group_betweenness_centrality(nx.path_graph(5), [6, 7, 8])