somewhat working plots

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

65
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):
df['timestamp'] = df['timestamp'].map(lambda t: datetime.datetime.fromtimestamp(t))
return df
while True: log_path = os.path.join(model_path, model_name, 'logs')
#df = pd.read_csv(sys.stdin, sep=";", names=headers) raw_dfs = [ pd.read_csv(os.path.join(log_path, 'eval.log'), sep=';', names=eval_headers),
df = pd.read_csv('log', sep=";", names=headers) pd.read_csv(os.path.join(log_path, 'train.log'), sep=';', names=train_headers) ]
df['Total episodes'] = df['Start episodes'] + 100 dfs = [ df_timestamp_to_datetime(df) for df in raw_dfs ]
dataframes = {
'eval': dfs[0],
'train': dfs[1]
}
return dataframes
print(df)
x = df['Total episodes'] if __name__ == '__main__':
y = df['Mean'] fig, ax = plt.subplots(1, 1)
plt.scatter(x, y, c=[[1,0.5,0]]) plt.ion()
#fig.canvas.draw() plt.title('Mean over episodes')
plt.pause(2) 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]])
#fig.canvas.draw()
plt.pause(2)