jsuarez/extra/plottourney.py (73 lines of code) (raw):
import numpy as np
import sys, json
from scipy.ndimage.filters import convolve
from forge.blade.lib.enums import Neon, Color256
from forge.blade.lib.log import Well
from matplotlib import pyplot as plt
from pdb import set_trace as T
from itertools import groupby
from collections import defaultdict
import collections
import logs as loglib
import experiments
import pickle
import os.path as osp
import os
#Trajectory equated runs
def law128():
rets = {
'16': [(67.16070920182207 + 67.27818177485464) / 2, 65.53879245987099, 53.50681153837636, 47.796987075763205],
'32': [74.32249298595012, (74.23310069290461 + 74.37120932322682) / 2, 62.39473940496259, 52.534221364625466],
'64': [93.80093851827966, 97.00682644982263, (90.09223534011689 + 87.19457911719405) / 2, 75.07034083273426],
'128': [109.72334511905568, 121.50424928230957, 121.95939904929756, (103.88169608454398 + 109.89533168831244) / 2],
}
return rets
def law64():
rets = {
'16': [70.34231691439271, 68.08311250680488, 59.693583536433955, 53.73726866287061],
'32': [81.34780761917122, 77.11407163999272, 69.42298166302263, 64.08609402748493],
'64': [119.08108040007559, 128.70866058606734, 107.03441943941378, 96.49304033434062],
'128': [228.30000553907186, 248.20682367308666, 241.56711251586333, 176.9001893357281]
}
return rets
def law32():
rets = {
'16': [85.87269967542795, 81.46462612460303, 76.59887029973338, 69.42979843534654],
'32': [101.75715811220914, 97.42858762722568, 93.53564789260295, 82.37687552017428],
'64': [175.1085580402948, 166.6336066014243, 158.17929884080706, 150.65147472068676],
'128': [467.5510996383706, 452.08437078645403, 453.8226233743415, 343.7846252190053]
}
return rets
def law16():
rets = {
'16': [106.08449913178288, 104.23812888187803, 89.77015854798023, 91.83535796395272],
'32': [118.97521974482278, 112.70542221817735, 115.6731408617378, 106.67977814200242],
'64': [205.66711549698138, 225.70099427243377, 208.46919256447077, 186.89705040539604],
'128': [735.7536877976454, 785.5794464698289, 781.9688869034464, 595.1878608252023]
}
return rets
#Max len runs
def adamlaw128():
rets = {
'16': [],
'32': [],
'64': [],
'128': [],
}
def plots(x, idxs, sz):
plt.style.use('bmh')
colors = Neon.color12()
idx = 0
for label, vals in x.items():
#c = colors[idx % 12]
plt.plot(idxs, vals, linewidth=5, linestyle='--', marker='o', markersize=15, markerfacecolor='None', label=str(label), markeredgewidth=3)
idx += 1
plt.grid(linestyle='--', linewidth=1)
plt.xticks(idxs)
loglib.ticks(24, Neon.BLACK.norm)
loglib.legend(24, Neon.BLACK.norm)
loglib.labels(xlabel='Opponent Population Size at Train Time', ylabel='Lifetime In Tournament', title='Tournament at Population Size '+str(sz), axsz=32, titlesz=36)
loglib.fig()
loglib.save('tourney'+str(sz)+'.png')
plt.close()
#Rows: 16, 32, 64, 128
rets = [law16(), law32(), law64(), law128()]
idxs = [16, 32, 64, 128]
for idx, ret in zip(idxs, rets):
plots(ret, idxs, idx)