#! /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))

lines = open('energy.out', 'r').readlines()

Ediff = []
for i in range(1, len(lines) ): Ediff.append( abs( float(lines[i].split()[3]) - float(lines[i].split()[2]) )*2625.5002 )

bins = np.linspace(0.,10.,21)
#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 = plt.hist( Ediff, bins=bins, color='b', density=False, weights=np.ones(len(Ediff)) / len(Ediff) )
#hist = plt.hist( Ediff, bins=30, color='b', density=False, weights=np.ones(len(Ediff)) / len(Ediff) )

#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 )
Tot = 0
for i in range(len(hist[:][0])):
	Tot += hist[0][i]
	print(hist[1][i], Tot)

ylim = plt.ylim()

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

#plt.show()

