def draw_whole_graph(inputG, outPicName):
plt.close('all')
f = plt.figure(figsize=(16, 10))
plt.margins(x=0.05, y=0.05) # text 가 잘리는 경우가 있어서, margins을 넣음
pos = nx.spring_layout(inputG)
"""
한번씩 input_lst가 비어있을때가 있는데 왜 그런지 확인 필요.
"""
def return_log_scaled_lst(input_lst):
r_lst = map(np.log, input_lst)
try:
max_v = max(map(np.log, input_lst))
min_v = min(map(np.log, input_lst))
return map(lambda v: v/max_v, r_lst)
except:
print(input_lst)
node_weight_lst = return_log_scaled_lst([n[1]['weight'] for n in inputG.nodes(data=True)])
edge_weight_lst = return_log_scaled_lst([e[2]['weight'] for e in inputG.edges(data=True)])
nx.draw_networkx_nodes(inputG, pos,
node_size = list(map(lambda x: x*2000, node_weight_lst)),
#node_size = [ n[1]['weight']*1000 for n in inputG.nodes(data=True)],
alpha=1.0 )
# label의 경우는 특정 node만 그릴 수 없음. 그리면 모두 그려야함.
nx.draw_networkx_labels(inputG, pos, font_weight='bold',
font_family='sans-serif',
font_color='black', font_size=15
)
nx.draw_networkx_edges(inputG, pos,
width = list(map(lambda x: 5**(x+1), edge_weight_lst)),
edge_color='b', alpha=0.5
)
plt.axis('off')
plt.savefig('../../assets/images/markdown_img/'+outPicName)
#plt.show()
댓글남기기