In [62]:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import sys
import os
In [50]:
# read in data
player_fps = {} # dictionary with avg and min fps and single avg and min fps
LOG_FILE = os.path.join(os.curdir, r'log\fun6.log')
with open(LOG_FILE, 'r') as fhandle:
player_name = ''
for line in fhandle:
if '[OPT] (FPS)' in line:
#print(line)
if 'Avg. FPS for' in line:
start_ix = line.index('Avg. FPS for')
start_player_ix = start_ix + len('Avg. FPS for ')
player_name = line[start_player_ix:].split(':')[0]
player_fps[player_name] = [[int(n) for n in (line.split(player_name + ': ')[1]).strip("\"\n[]").split(',')]]
if 'Min. FPS for' in line:
start_ix = line.index('Min. FPS for')
player_fps[player_name].append([int(n) for n in (line.split(player_name + ': ')[1]).strip("\"\n[]").split(',')])
if 'Single avg. FPS for' in line:
player_fps[player_name].append(float((line.split(player_name + ': ')[1]).strip("\n\"")))
if 'Single min. FPS for' in line:
player_fps[player_name].append(float((line.split(player_name + ': ')[1]).strip("\n\"")))
In [108]:
# plot data
col = 2
# single avg fps
fig = plt.figure(figsize=(30,15))
for name, data in sorted(player_fps.items(), key=lambda kv: kv[1][col]):
plt.bar(name, data[col], label=name)
plt.ylabel("FPS")
plt.xticks(rotation=90)
#plt.legend(loc="right")
plt.title("Single Avg. FPS ASC")
plt.hlines(np.mean([x[col] for x in player_fps.values()]), -1, len(player_fps), color="blue")
plt.savefig(os.path.join(os.curdir, "output\single_avg_fps.png"))
In [110]:
# plot data
col = 3
# single min fps
fig = plt.figure(figsize=(30,15))
for name, data in sorted(player_fps.items(), key=lambda kv: kv[1][col]):
plt.bar(name, data[col], label=name)
plt.ylabel("FPS")
plt.xticks(rotation=90)
#plt.legend(loc="right")
plt.title("Single Min. FPS ASC")
plt.hlines(np.mean([x[col] for x in player_fps.values()]), -1, len(player_fps), color="blue")
plt.savefig(os.path.join(os.curdir, "output\single_min_fps.png"))
In [113]:
# plot data
col = 0
# single avg fps
fig = plt.figure(figsize=(30,15))
for name, data in sorted(player_fps.items(), key=lambda kv: kv[1][col]):
plt.bar(name, np.mean(data[col]), yerr=np.std(data[col]), label=name)
plt.ylabel("FPS")
plt.xticks(rotation=90)
#plt.legend(loc="right")
plt.title("All Avg. FPS")
plt.savefig(os.path.join(os.curdir, r"output\all_avg_fps.png"))
In [114]:
# plot data
col = 1
# single avg fps
fig = plt.figure(figsize=(30,15))
for name, data in sorted(player_fps.items(), key=lambda kv: kv[1][col]):
plt.bar(name, np.mean(data[col]), yerr=np.std(data[col]), label=name)
plt.ylabel("FPS")
plt.xticks(rotation=90)
#plt.legend(loc="right")
plt.title("All Min. FPS")
plt.savefig(os.path.join(os.curdir, r'output\all_min_fps.png'))