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'))
Exemple #2
0
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()
Exemple #3
0
    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'))
Exemple #4
0
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()