nodes = map(int, edge_id.split(',')) pickcount = int(losscount) + int(wincount) for i in nodes: heropickcount[i] += int(pickcount) herowincount[i] += int(wincount) f = open('output.txt', 'r') popularitygraph = nx.Graph() winrategraph = nx.Graph() while True: line1 = f.readline() line2 = f.readline() if not line2: break line1 = line1.rstrip() line2 = line2.rstrip() edge_id, losscount = line1.split('\t') wincount = line2.split('\t')[1] edge_id = edge_id.split(':')[0] nodes = map(int, edge_id.split(',')) pickcount = int(losscount) + int(wincount) popularitygraph.add_edge(*hf.getHero(nodes), weight=pickcount) winrate = float(wincount)/pickcount winratetarget = max(herowincount[nodes[0]]/heropickcount[nodes[0]], herowincount[nodes[1]]/heropickcount[nodes[1]]) winrategraph.add_edge(*hf.getHero(nodes), weight=(winrate - winratetarget)) d = json_graph.node_link_data(popularitygraph) json.dump(d, open('popularitygraph.json','w')) d = json_graph.node_link_data(winrategraph) json.dump(d, open('winrategraph.json', 'w'))
import matplotlib.pyplot as pp from matplotlib import colors import herofilter as hf import mapreduceoutputparse as mp # simple computation: grab N most popular heroes N = 5 totals = mp.picksbans.sum(axis=0) totals.sort(ascending=False) Nmostpopular = list(totals[:N].index) # graphing code selected = list() for i in range(N): selected.append(Nmostpopular[i]) names = hf.getHero(selected) ind = np.arange(N) width = 1 pp.figure() for i in range(10): pp.bar(ind, mp.picksbans.iloc[9-i][selected], width, color=(1,i*.1,i*.1), bottom=mp.picksbans.iloc[10-i:10].sum(axis=0)[selected]) pp.bar(ind, -mp.picksbans.iloc[10+i][selected], width, color=(i*.1,i*.1,1), bottom=-mp.picksbans.iloc[10:10+i].sum(axis=0)[selected]) pp.ylabel('Ban & pick frequency') pp.title('Top ' + str(N) + ' banned/picked heroes') pp.xticks(ind+width/2., names) pp.yticks(np.arange(-40000, 40000, 10000)) pp.show()
nodes = map(int, edge_id.split(',')) pickcount = int(losscount) + int(wincount) for i in nodes: heropickcount[i] += int(pickcount) herowincount[i] += int(wincount) f = open('output.txt', 'r') popularitygraph = nx.Graph() winrategraph = nx.Graph() while True: line1 = f.readline() line2 = f.readline() if not line2: break line1 = line1.rstrip() line2 = line2.rstrip() edge_id, losscount = line1.split('\t') wincount = line2.split('\t')[1] edge_id = edge_id.split(':')[0] nodes = map(int, edge_id.split(',')) pickcount = int(losscount) + int(wincount) popularitygraph.add_edge(*hf.getHero(nodes), weight=pickcount) winrate = float(wincount) / pickcount winratetarget = max(herowincount[nodes[0]] / heropickcount[nodes[0]], herowincount[nodes[1]] / heropickcount[nodes[1]]) winrategraph.add_edge(*hf.getHero(nodes), weight=(winrate - winratetarget)) d = json_graph.node_link_data(popularitygraph) json.dump(d, open('popularitygraph.json', 'w')) d = json_graph.node_link_data(winrategraph) json.dump(d, open('winrategraph.json', 'w'))