Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 8f9823f

Browse files
乌鸦 代码提交
1 parent 95a0627 commit 8f9823f

File tree

2 files changed

+55
-0
lines changed

2 files changed

+55
-0
lines changed

‎wuya/level/doc/1_evidence.xls

136 KB
Binary file not shown.

‎wuya/level/level_count.py

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
import networkx as nx
2+
import pandas as pd
3+
from pyvis import network as net
4+
5+
df = pd.read_excel('./doc/1_evidence.xls')
6+
df = df.loc[:, ['id','name','invite_id','invited_id']]
7+
df.columns = ['id','title','to', 'from']
8+
9+
G = nx.from_pandas_edgelist(df, 'from', 'to', create_using=nx.DiGraph())
10+
11+
# 找到根节点
12+
top_node = []
13+
for node, degrees in G.in_degree():
14+
if degrees == 0:
15+
top_node.append(node)
16+
print('Big Boss:', top_node)
17+
18+
# 设置所有节点级别
19+
l = nx.shortest_path_length(G, 100000)
20+
nx.set_node_attributes(G, l, 'level')
21+
22+
# 计算每级人员数目
23+
data = {}
24+
for node, level in l.items():
25+
if level in data.keys():
26+
data[level].append(node)
27+
else:
28+
data[level] = [node]
29+
for level, nodes in data.items():
30+
print(level, len(nodes))
31+
32+
# 添加颜色
33+
for node in G.nodes:
34+
G.nodes[node]['title'] = str(node)
35+
level = G.nodes[node]['level']
36+
37+
if level == 0:
38+
G.nodes[node]['color'] = 'red'
39+
elif level == 1:
40+
G.nodes[node]['color'] = 'orange'
41+
elif level == 2:
42+
G.nodes[node]['color'] = 'yellow'
43+
44+
# 给下线前十的目标添加颜色
45+
degrees = G.out_degree()
46+
top_nodes = sorted(degrees, key=lambda x: x[1], reverse=True)[:10]
47+
print(top_nodes)
48+
49+
for node in top_nodes:
50+
G.nodes[node[0]]['color'] = 'green'
51+
52+
nt = net.Network('960px', '1280px', directed=True)
53+
nt.from_nx(G)
54+
nt.show('1_evidence.html')
55+

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /