46 lines
1.8 KiB
Python
Executable file
46 lines
1.8 KiB
Python
Executable file
#!/usr/bin/env python3
|
|
import sys
|
|
import os
|
|
import numpy as np
|
|
import matplotlib.pyplot as plt
|
|
|
|
##python3 hist_random.py ./dastga_results_all/fastga_results_random ./hist_and_csv/
|
|
#argv : list of elite results
|
|
data=sys.argv[1]
|
|
figpath=sys.argv[2]
|
|
averageConfigs=[]
|
|
name=[]
|
|
for path in os.listdir(data):
|
|
#eg path: maxEv=100_nbAlgo=15_2021-08-20T1511+0200_results_randoms
|
|
average=[]
|
|
if("maxEv" in path):
|
|
for ddir in os.listdir(os.path.join(data,path)): #ddir : directory of one run_elites_all or more
|
|
if("crossover" in ddir):
|
|
#name.append("_".join(ddir.split("_")[1:3]))
|
|
for fastgadir in os.listdir(os.path.join(data,path,ddir,"data")): #fastgadir : directory of 50 runs of a configuration
|
|
for fname in os.listdir(os.path.join(data,path,ddir,"data",fastgadir)):
|
|
with open(os.path.join(data,path,ddir,"data",fastgadir,fname)) as fd:
|
|
auc = float(fd.readlines()[0]) *(-1)
|
|
average.append(auc)
|
|
#hist[belonging(auc,cum)]+=1
|
|
averageConfigs.append(average)
|
|
name.append(path.split("_")[0])
|
|
|
|
figdir=os.path.join(figpath,"hist_join")
|
|
try:
|
|
os.makedirs(figdir)
|
|
except FileExistsError:
|
|
pass
|
|
|
|
colors=['yellow', 'green',"blue","pink","purple","orange","magenta","gray","darkred","cyan","brown","olivedrab","thistle","stateblue"]
|
|
plt.figure()
|
|
plt.hist(averageConfigs,bins=10,range=(0,1),align="mid",rwidth=0.5,label=name) #no label
|
|
plt.xlabel("performances")
|
|
plt.ylabel("Number of runs")
|
|
plt.ylim([0,8000])
|
|
plt.xlim(0,1)
|
|
plt.yticks(range(0,8000,500))
|
|
#plt.xticks(np.cumsum([0.1]*10))
|
|
plt.legend()
|
|
plt.savefig(figdir+"/hist_random_by_budget.png")
|
|
plt.close()
|