import numpy as np import matplotlib.pyplot as plt def DRAWFIG(fnameR,fnameF,ELcr): # Parameter setting xmin=0.0;xmax=180.0 qmin=0.0;qmax=13000.0 hmin=154.0;hmax=180.0 # Input data ti=[] EL=[] Qi=[] Qo=[] fin=open(fnameR,'r') text=fin.readline() while 1: text=fin.readline() if not text: break text=text.strip() text=text.split() ti=ti+[float(text[2])] EL=EL+[float(text[3])] Qi=Qi+[float(text[6])] Qo=Qo+[float(text[7])] fin.close() fig=plt.figure() line1=plt.plot(ti,Qi,color='black',lw=2.0,label='Q (inflow)') line2=plt.plot(ti,Qo,color='black',lw=2.0,label='Q (outflow)') plt.plot([0],[0],color='black',lw=2.0,label='Water Level') #Dummy for legend line1[0].set_dashes([5,2]) line2[0].set_dashes([8,4,2,4]) n1=Qi.index(max(Qi)) n2=Qo.index(max(Qo)) n3=EL.index(max(EL)) plt.text(ti[n1],Qi[n1],'max:%.0f'%max(Qi),fontsize=10,color='black',ha='left',va='bottom') plt.text(ti[n2],Qo[n2],'max:%.0f'%max(Qo),fontsize=10,color='black',ha='left',va='bottom') plt.xlabel('Time (hour)') plt.ylabel('Discharge (m$^3$/s)') plt.xlim(xmin,xmax) plt.ylim(qmin,qmax) plt.xticks(np.arange(xmin,xmax+12,12)) plt.yticks(np.arange(qmin,qmax+2000,2000)) plt.grid() plt.legend(shadow=True,loc='upper right',handlelength=3) plt.twinx() plt.plot(ti,EL,color='black',lw=2.0,label='Water Level') plt.hlines([ELcr],xmin,xmax,color='black',lw=1.0,linestyles='dashed',label='O.F.crest') plt.text(ti[n3],EL[n3],'ELmax:%.3f'%max(EL),fontsize=10,color='black',ha='left',va='bottom') plt.text(xmax-5,ELcr,'O.F.Crest:EL.%.1f'%ELcr,fontsize=10,color='black',ha='right',va='bottom') plt.ylim(hmin,hmax) plt.yticks(np.arange(hmin,hmax+2,2)) plt.ylabel('Water Level (EL.m)') plt.savefig(fnameF,dpi=200) plt.show() plt.close() # Main routine fnameR='out_ut_pmf1.txt' fnameF='fig_ut_pmf1.png' ELcr=167.0 DRAWFIG(fnameR,fnameF,ELcr) fnameR='out_ut_pmf2.txt' fnameF='fig_ut_pmf2.png' ELcr=163.4 DRAWFIG(fnameR,fnameF,ELcr) fnameR='out_ut_pmf3.txt' fnameF='fig_ut_pmf3.png' ELcr=157.3 DRAWFIG(fnameR,fnameF,ELcr)