송성호

baseball_weighted-degree.py

#-*-encoding utf-8 -*-
import matplotlib.pyplot as plt
import networkx as nx
from openpyxl import load_workbook
wb = load_workbook("baseball.xlsx")
load_ws = wb['Sheet1']
def make_edge(BBlist):
edge_list = []
for i in range(0,len(BBlist)):
for j in range(0, len(BBlist)):
if i == j:
break
else:
edge_list.append((BBlist[i],BBlist[j]))
return edge_list
BB_name_list = []
BB_Salary_list = []
for i in range(1,857,1):
school_name='G'+str(i)
player_name='B'+str(i)
name3=(str(load_ws[school_name].value) +','+ str(load_ws[player_name].value)).split(',')
BB_Salary_list.append(int(load_ws['H'+str(i)].value))
BB_name_list.append(name3)
edge_list = []
graph_list = []
check_list = []
for i in range(0,856):
graph = nx.Graph()
edge = make_edge(BB_name_list[i])
if BB_name_list[i] in check_list:
BB_Salary_list[i]=BB_Salary_list[i]+BB_Salary_list[check_list.index(BB_name_list[i])]
BB_Salary_list[check_list.index(BB_name_list[i])]=BB_Salary_list[i]
check_list.append(BB_name_list[i])
else:
check_list.append(BB_name_list[i])
edge_list.append(edge)
graph.add_nodes_from(BB_name_list[i])
graph.add_edges_from(edge_list[i], weight = BB_Salary_list[i]/10000000000)
graph_list.append(graph)
total = nx.Graph()
for i in range(0,856):
total = nx.compose(total, graph_list[i])
degree = total.degree()
nx.write_gexf(total, "baseball_weighted-degree.gexf")
options = {
'edge_color': '#FFDEA2',
'width': 1,
'with_labels': True,
'font_weight': 'regular',
}
plt.figure(figsize=(20,20))
pos = nx.spring_layout(total, iterations = 10)
nx.draw(total, pos, **options, font_family='batang', font_color='black', font_size=8)
ax = plt.gca()
ax.collections[0].set_edgecolor("#555555")
plt.show()