#! /usr/bin/env python

import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt

mpl.rc("font", size=12)
fig = plt.figure(figsize=(3.69,3))

train_dat = open('Etrain.dat', 'r').readlines()
test_dat = open('Etest.dat', 'r').readlines()

Ediff_train = []
for i in range(1, len(train_dat) ): Ediff_train.append( (float(train_dat[i].split()[0]) - float(train_dat[i].split()[1]))*96.4853075 )
Ediff_test = []
for i in range(1, len(test_dat) ): Ediff_test.append( (float(test_dat[i].split()[0]) - float(test_dat[i].split()[1]))*96.4853075 )

bins = np.linspace(0.,10.,20)
#plt.hist(Ediff_train, bins=bins, facecolor='b', edgecolor='k', density='True', label='Train')
#plt.hist(Ediff_test, bins=bins, facecolor='r', edgecolor='k', density='True', label='Test')
#plt.hist([Ediff_train,Ediff_test], bins=bins, color=['b', 'r'], density=False,
#	weights=[np.ones(len(Ediff_train)) / len(Ediff_train), np.ones(len(Ediff_test)) / len(Ediff_test)],
#	label=['Train', 'Test'] )
hist = plt.hist([Ediff_train,Ediff_test], bins=bins, color=['b', 'r'], density=False,
	weights=[2.*np.ones(len(Ediff_train)) / len(Ediff_train), 2.*np.ones(len(Ediff_test)) / len(Ediff_test)],
	label=['Train', 'Test'] )

#hist_test = plt.hist(Ediff_test, bins=bins, color='r', density=False,
#	weights=[np.ones(len(Ediff_train)) / len(Ediff_train), np.ones(len(Ediff_test)) / len(Ediff_test)],
#	label=['Train', 'Test'] )

print( hist )

plt.plot([4.2,4.2], [0.,1.], linestyle='--', color='k')
plt.xlim(0.,10.)
plt.ylim(0.,0.7)
plt.xlabel('Absolute error (kJ/mol)')
plt.ylabel('Fraction')
plt.legend()
plt.tight_layout()
plt.savefig('errorfraction.pdf')

plt.show()

