Untitled
unknown
plain_text
2 years ago
2.1 kB
11
Indexable
import pandas as pd
import numpy as np
import os
import matplotlib.pyplot as plt
import seaborn as sns
SERVO = 3
folders = os.listdir('./Results')
servo_total= []
for folder in folders:
if folder.startswith(f'morphology_{SERVO}') and not folder.endswith('.pdf') and not folder.endswith('png'):
try:
best = []
runs = os.listdir(f'./Results/{folder}/evals/')
for run in runs:
data = pd.DataFrame(pd.read_csv('./Results/{}/evals/{}'.format(folder, run)))
if data['best_eval'].iloc[-1] >= 5.5:
print(data['best_eval'].iloc[-1], run)
plt.figure()
plt.plot(data['best_eval'])
plt.title('Suspiciously Good: {}'.format(run))
plt.savefig(f'./Results/{folder}/{run}.pdf')
plt.close()
# plt.show()
best.append(data['best_eval'])
full_data = pd.DataFrame(best).T
full_data['mean'] = full_data.mean(numeric_only=True, axis=1)
full_data['std'] = full_data.std(numeric_only=True, axis=1)
plt.figure()
plt.plot(full_data['mean'])
plt.fill_between(full_data.index.values, full_data['mean'] - full_data['std'], full_data['mean'] + full_data['std'], alpha = 0.3)
plt.title(folder)
plt.xlabel('Generations')
plt.ylabel('Fitness')
plt.savefig(f'Results/{folder}/{folder}.pdf')
plt.close()
# plt.show()
servo_total.append(full_data['mean'])
except FileNotFoundError:
pass
full_servo = pd.DataFrame(servo_total).T
full_servo['mean'] = full_servo.mean(numeric_only=True, axis=1)
full_servo['std'] = full_servo.std(numeric_only=True, axis=1)
plt.figure()
plt.plot(full_servo['mean'])
plt.title(f'{SERVO}')
plt.xlabel('Generations')
plt.ylabel('Fitness')
plt.savefig(f'Results/{SERVO}.pdf')
plt.close()
Editor is loading...