somewhat working plots

This commit is contained in:
Christoffer Müller Madsen 2018-03-12 00:12:03 +01:00
parent 55898d0e66
commit 554e587ffd

69
plot.py
View File

@ -1,36 +1,57 @@
import sys import os
import pandas as pd import pandas as pd
from datetime import datetime from datetime import datetime
import csv import csv
import datetime
import matplotlib.pyplot as plt import matplotlib.pyplot as plt
import matplotlib.ticker as mtick import matplotlib.ticker as mtick
import matplotlib.dates as mdates import matplotlib.dates as mdates
from matplotlib.backends.backend_pdf import PdfPages
headers = ['Phase', 'Method', 'Start episodes', 'Episodes', 'Sum', 'Mean']
fig, ax = plt.subplots(1, 1) train_headers = ['timestamp', 'eps_train', 'eps_trained_session', 'sum', 'mean']
eval_headers = ['timestamp', 'method', 'eps_train', 'eval_eps_used', 'sum', 'mean']
plt.ion() model_path = 'models'
plt.title('Mean over episodes')
plt.xlabel('Episodes')
plt.ylabel('Mean')
plt.grid(True)
#ax.set_xlim(left=0)
ax.set_ylim([-2, 2])
plt.show() def dataframes(model_name):
def df_timestamp_to_datetime(df):
while True: df['timestamp'] = df['timestamp'].map(lambda t: datetime.datetime.fromtimestamp(t))
#df = pd.read_csv(sys.stdin, sep=";", names=headers) return df
df = pd.read_csv('log', sep=";", names=headers)
df['Total episodes'] = df['Start episodes'] + 100
print(df)
x = df['Total episodes'] log_path = os.path.join(model_path, model_name, 'logs')
y = df['Mean'] raw_dfs = [ pd.read_csv(os.path.join(log_path, 'eval.log'), sep=';', names=eval_headers),
pd.read_csv(os.path.join(log_path, 'train.log'), sep=';', names=train_headers) ]
dfs = [ df_timestamp_to_datetime(df) for df in raw_dfs ]
dataframes = {
'eval': dfs[0],
'train': dfs[1]
}
return dataframes
if __name__ == '__main__':
fig, ax = plt.subplots(1, 1)
plt.ion()
plt.title('Mean over episodes')
plt.xlabel('Episodes trained')
plt.ylabel('Mean')
plt.grid(True)
#ax.set_xlim(left=0)
ax.set_ylim([-2, 2])
plt.show()
while True:
df = pd.read_csv('models/c/logs/eval.log', sep=";", names=eval_headers)
df['timestamp'] = df['timestamp'].map(lambda t: datetime.datetime.fromtimestamp(t))
print(df)
x = df['eps_train']
y = df['mean']
plt.scatter(x, y, c=[[1,0.5,0]]) plt.scatter(x, y, c=[[1, 0.5, 0]])
#fig.canvas.draw() #fig.canvas.draw()
plt.pause(2) plt.pause(2)