In [1]:
import matplotlib.pyplot as plt
%matplotlib inline
from pymatgen.util.plotting_utils import get_publication_quality_plot

In [2]:
import numpy as np
import pandas as pd

In [3]:
ls


Q7.ipynb                    Si_50_9_10.25.out           Si_50_9_10.27.out           Si_50_9_10.29.out           Si_50_9_10.31.out           Si_50_9_10.33.out           Si_50_9_10.35.out           run_pw.py*
Si.pbe-n-kjpaw_psl.0.1.UPF  Si_50_9_10.25.pw.in         Si_50_9_10.27.pw.in         Si_50_9_10.29.pw.in         Si_50_9_10.31.pw.in         Si_50_9_10.33.pw.in         Si_50_9_10.35.pw.in
Si.pw.in.template           Si_50_9_10.26.out           Si_50_9_10.28.out           Si_50_9_10.3.out            Si_50_9_10.32.out           Si_50_9_10.34.out           analyze.py*
Si.pz-n-kjpaw_psl.0.1.UPF   Si_50_9_10.26.pw.in         Si_50_9_10.28.pw.in         Si_50_9_10.3.pw.in          Si_50_9_10.32.pw.in         Si_50_9_10.34.pw.in         results.csv

In [4]:
datafile = pd.read_csv('results.csv')

In [5]:
datafile.head(0)


Out[5]:
filename ecut nkpts alat energy total_force cpu_time
0 Si_50_9_10.25.out 50 35 10.25 -93.453743 0 12.2
1 Si_50_9_10.26.out 50 35 10.26 -93.453853 0 12.3
2 Si_50_9_10.27.out 50 35 10.27 -93.453947 0 12.2
3 Si_50_9_10.28.out 50 35 10.28 -93.454027 0 12.3
4 Si_50_9_10.29.out 50 35 10.29 -93.454093 0 12.2
5 Si_50_9_10.3.out 50 35 10.30 -93.454144 0 12.3
6 Si_50_9_10.31.out 50 35 10.31 -93.454180 0 12.4
7 Si_50_9_10.32.out 50 35 10.32 -93.454202 0 12.5
8 Si_50_9_10.33.out 50 35 10.33 -93.454209 0 12.4
9 Si_50_9_10.34.out 50 35 10.34 -93.454202 0 12.7
10 Si_50_9_10.35.out 50 35 10.35 -93.454182 0 12.5

In [6]:
x = datafile['alat'].tolist()
x


Out[6]:
[10.25,
 10.26,
 10.27,
 10.279999999999999,
 10.289999999999999,
 10.300000000000001,
 10.31,
 10.32,
 10.33,
 10.34,
 10.35]

In [7]:
y_energy = datafile['energy'].tolist()
# y_conver = datafile['Force Difference (meV/Angstrom)'].tolist()

In [9]:
fig, (ax0,ax1)=plt.subplots(nrows=2)
fig.set_size_inches(10,10)

ax0.scatter(x, y_energy,marker='o',alpha=0.75,s=60,c='r')
ax0.plot(x,y_energy,c='black')
ax0.set_title('Forces VS K-points',fontsize=30,y=1.05)
ax0.set_xlabel('# of K-points',fontsize=24)
ax0.set_ylabel(r'Force $eV/\AA$',fontsize=20)
# ax0.set_ylim(3.80,3.89)
ax0.tick_params(labelsize = 18)

# ax1.scatter(x,y_conver,marker='o',alpha=0.75, s=60,c='b')
# ax1.plot(x,y_conver,c='black')
# ax1.set_title('Force Convergence Vs K-points',fontsize=24,y=1.05)
# ax1.set_xlabel('# of K-points',fontsize=24)
# ax1.set_ylabel(r'Force Converge $meV/\AA$',fontsize=18)
# # ax1.set_yscale('log')
# ax1.set_ylim(-1,40)
# ax1.annotate(r'Convergence < 5 $meV/\AA$ # Kpoints: 205', xy=(207, 5),  xycoords='data',
#                 xytext=(0.95, 0.95), textcoords='axes fraction',
#                 arrowprops=dict(facecolor='black', shrink=0.05),
#                 horizontalalignment='right', verticalalignment='top',fontsize=16
#                 )
# ax1.tick_params(labelsize = 18)

plt.subplots_adjust(hspace=0.5)
plt.show()



In [17]:



Out[17]:
<matplotlib.text.Text at 0x10891e9d0>

In [18]:
plt.show()