swdata/plot_act_rnd_per_file.py
2018-03-11 17:16:26 +08:00

44 lines
1.3 KiB
Python

import json
from pathlib import Path
import numpy as np
from matplotlib import pyplot as plt
from matplotlib.ticker import MultipleLocator
def read_and_plot(json_file):
graph_dir = Path('/Users/wjsjwr/lab/code/swdata/graph/')
dpath = Path(json_file)
with open(json_file, 'r') as f:
data = json.load(f)
actions = ''
rnds = ''
for d in data:
if d['cat'] == 'game' and d['act'] == 'created':
actions = np.zeros((2, int(d['info']['game_end_at'])), dtype=np.int32)
rnds = list(range(1,int(d['info']['game_end_at'])+1))
break
for d in data:
if d['cat'] == 'action' and d['act'] == 'done':
actions[0 if d['act_a'] == 'C' else 1, int(d['rno'])-1] += 1
actions[0 if d['act_b'] == 'C' else 1, int(d['rno'])-1] += 1
plt.clf()
lines = []
lg = ['C', 'D']
l, = plt.plot(rnds, actions[0,:], color='#FF358B', linewidth=1)
lines.append(l)
l, = plt.plot(rnds, actions[1,:], color='#01B0F0', linewidth=1)
lines.append(l)
plt.figlegend(lines, lg, numpoints=1, loc='upper right')
fname = "act_rnd_%s.eps" % str(dpath.stem)
plt.savefig(str(graph_dir / fname))
itr = Path('/Users/wjsjwr/lab/wos-data-new/')
for d in itr.iterdir():
if d.suffix == '.json':
read_and_plot(str(d))
print(str(d))