# coding: utf-8 from matplotlib import rcParams rcParams['font.family'] = 'sans-serif' rcParams['font.sans-serif'] = ['arial narrow'] import matplotlib.pyplot as plt #from matplotlib.patches import Polygon from mpl_toolkits.axes_grid.axislines import Subplot from math import * import sys import numpy as np def CALX(c,y,pm): return (-c[0]+pm*sqrt(c[0]**2-4*(y**2+c[1]*y+c[2])))/2 def CALC(x1,y1,x2,y2,x3,y3): a=np.array([[x1,y1,1],[x2,y2,1],[x3,y3,1]]) b=np.array([-x1**2-y1**2,-x2**2-y2**2,-x3**2-y3**2]) c=np.linalg.solve(a,b) return c xx=[] yy=[] xx=xx+[ 0];yy=yy+[314.8] xx=xx+[ 0];yy=yy+[339.4] xx=xx+[218];yy=yy+[339.4] xx=xx+[218];yy=yy+[314.8] xx=xx+[173];yy=yy+[314.8] xx=xx+[173];yy=yy+[281.9] xx=xx+[112];yy=yy+[281.9] xx=xx+[112];yy=yy+[314.8] xx=xx+[ 86];yy=yy+[314.8] xx=xx+[ 86];yy=yy+[281.9] xx=xx+[ 25];yy=yy+[281.9] xx=xx+[ 25];yy=yy+[314.8] xx=xx+[ 0];yy=yy+[314.8] xmin=-50 xmax=270 ymin=260 ymax=360 fig = plt.figure() ax1 = Subplot(fig,111) #ax1 = plt.gca() fig.add_subplot(ax1) #fig.suptitle(str_t,fontsize=14,fontweight='bold') ax1.plot(xx,yy,color='#000000',lw=1.5) x=[4,4,25] y=[314.8,311.3,311.3] line1=ax1.plot(x,y,color='#000000',linewidth=1.5) line1[0].set_dashes([4,2]) del x,y x=[173,214,214] y=[311.3,311.3,314.8] line1=ax1.plot(x,y,color='#000000',linewidth=1.5) line1[0].set_dashes([4,2]) del x,y l_el=[339.4,314.8,297.5,281.9] l_la=['Top of Cavern','F1 floor','Center of Turbine','Bottom of Cavern'] for el in l_el: x1=xmin+5 x2=xmax-5 ax1.plot([x1,x2],[el,el], color='#000000',lw=0.5) for el in l_el: txt='EL.{0:.3f}'.format(el) ax1.text(xmax-5,el,txt,fontsize=10,color='#000000',ha='right',va='bottom') for el,la in zip(l_el,l_la): ax1.text(xmin+5,el,la,fontsize=10,color='#000000',ha='left',va='bottom') xz0=0 xz1=4 xz2=25 xz3=36 xz4=74 xz5=86 xz6=112 xz7=123 xz8=161 xz9=173 xza=214 xzb=218 ELT=339.4;ELF=314.8;ELP=297.5;ELB=281.9 ax1.plot([xz0,xz0],[ELB-10,ELT+10],color='#000000',linewidth=0.5) ax1.plot([xzb,xzb],[ELB-10,ELT+10],color='#000000',linewidth=0.5) ax1.plot([xz1,xz1],[ELB-10,ELF],color='#000000',linewidth=0.5) ax1.plot([xz2,xz2],[ELB-10,ELB],color='#000000',linewidth=0.5) ax1.plot([xz3,xz3],[ELB-10,ELF+15],color='#000000',linewidth=0.5) ax1.plot([xz4,xz4],[ELB-10,ELF+15],color='#000000',linewidth=0.5) ax1.plot([xz5,xz5],[ELB-10,ELB],color='#000000',linewidth=0.5) ax1.plot([xz6,xz6],[ELB-10,ELB],color='#000000',linewidth=0.5) ax1.plot([xz7,xz7],[ELB-10,ELF+15],color='#000000',linewidth=0.5) ax1.plot([xz8,xz8],[ELB-10,ELF+15],color='#000000',linewidth=0.5) ax1.plot([xz9,xz9],[ELB-10,ELB],color='#000000',linewidth=0.5) ax1.plot([xza,xza],[ELB-10,ELF],color='#000000',linewidth=0.5) ax1.plot([xz3+4.6,xz3+4.6],[ELP,ELF+5],color='#000000',linewidth=0.5) ax1.plot([xz4+4.6,xz4+4.6],[ELP,ELF+5],color='#000000',linewidth=0.5) ax1.plot([xz7+4.6,xz7+4.6],[ELP,ELF+5],color='#000000',linewidth=0.5) ax1.plot([xz8+4.6,xz8+4.6],[ELP,ELF+5],color='#000000',linewidth=0.5) x11=(xz0+xzb)/2;y11=ELT+10;u11= (xzb-xz0)/2;v11=0 x12=(xz0+xzb)/2;y12=ELT+10;u12=-(xzb-xz0)/2;v12=0 x20= -5.0;y20=ELB-10;u20= 5.0 ;v20=0 x31=(xz1+xz2)/2;y31=ELB-10;u31= (xz2-xz1)/2 ;v31=0 x32=(xz1+xz2)/2;y32=ELB-10;u32=-(xz2-xz1)/2 ;v32=0 x41=(xz2+xz3)/2;y41=ELB-10;u41= (xz3-xz2)/2 ;v41=0 x42=(xz2+xz3)/2;y42=ELB-10;u42=-(xz3-xz2)/2 ;v42=0 x51=(xz3+xz4)/2;y51=ELB-10;u51= (xz4-xz3)/2 ;v51=0 x52=(xz3+xz4)/2;y52=ELB-10;u52=-(xz4-xz3)/2 ;v52=0 x61=(xz4+xz5)/2;y61=ELB-10;u61= (xz5-xz4)/2 ;v61=0 x62=(xz4+xz5)/2;y62=ELB-10;u62=-(xz5-xz4)/2 ;v62=0 x71=(xz5+xz6)/2;y71=ELB-10;u71= (xz6-xz5)/2 ;v71=0 x72=(xz5+xz6)/2;y72=ELB-10;u72=-(xz6-xz5)/2 ;v72=0 x81=(xz6+xz7)/2;y81=ELB-10;u81= (xz7-xz6)/2 ;v81=0 x82=(xz6+xz7)/2;y82=ELB-10;u82=-(xz7-xz6)/2 ;v82=0 x91=(xz7+xz8)/2;y91=ELB-10;u91= (xz8-xz7)/2 ;v91=0 x92=(xz7+xz8)/2;y92=ELB-10;u92=-(xz8-xz7)/2 ;v92=0 xa1=(xz8+xz9)/2;ya1=ELB-10;ua1= (xz9-xz8)/2 ;va1=0 xa2=(xz8+xz9)/2;ya2=ELB-10;ua2=-(xz9-xz8)/2 ;va2=0 xb1=(xz9+xza)/2;yb1=ELB-10;ub1= (xza-xz9)/2 ;vb1=0 xb2=(xz9+xza)/2;yb2=ELB-10;ub2=-(xza-xz9)/2 ;vb2=0 xc0=xzb+5;yc0=ELB-10;uc0=-5 ;vc0=0 xd1=xz3-5.0;yd1=ELP+5;ud1= 5 ;vd1=0 xd2=xz3+9.6;yd2=ELP+5;ud2=-5 ;vd2=0 xe1=xz4-5.0;ye1=ELP+5;ue1= 5 ;ve1=0 xe2=xz4+9.6;ye2=ELP+5;ue2=-5 ;ve2=0 xf1=xz7-5.0;yf1=ELP+5;uf1= 5 ;vf1=0 xf2=xz7+9.6;yf2=ELP+5;uf2=-5 ;vf2=0 xg1=xz8-5.0;yg1=ELP+5;ug1= 5 ;vg1=0 xg2=xz8+9.6;yg2=ELP+5;ug2=-5 ;vg2=0 X = [x11,x12,x20,x31,x32,x41,x42,x51,x52,x61,x62,x71,x72,x81,x82,x91,x92,xa1,xa2,xb1,xb2,xc0,xd1,xd2,xe1,xe2,xf1,xf2,xg1,xg2] Y = [y11,y12,y20,y31,y32,y41,y42,y51,y52,y61,y62,y71,y72,y81,y82,y91,y92,ya1,ya2,yb1,yb2,yc0,yd1,yd2,ye1,ye2,yf1,yf2,yg1,yg2] U = [u11,u12,u20,u31,u32,u41,u42,u51,u52,u61,u62,u71,u72,u81,u82,u91,u92,ua1,ua2,ub1,ub2,uc0,ud1,ud2,ue1,ue2,uf1,uf2,ug1,ug2] V = [v11,v12,v20,v31,v32,v41,v42,v51,v52,v61,v62,v71,v72,v81,v82,v91,v92,va1,va2,vb1,vb2,vc0,vd1,vd2,ve1,ve2,vf1,vf2,vg1,vg2] ax1.quiver(X,Y,U,V,angles='xy',scale_units='xy',scale=1,width=0.002,headwidth=5,headlength=10) ax1.text((xz0+xzb)/2,ELT+10,'L =218.000',fontsize=10,color='#000000',ha='center',va='bottom') ax1.text(2,ELB-12,'4.000',fontsize=10,color='#000000',ha='right',va='top') ax1.text(x31,ELB-12,'21.000',fontsize=10,color='#000000',ha='center',va='top') ax1.text(x41,ELB-10,'11.000',fontsize=10,color='#000000',ha='center',va='bottom') ax1.text(x51,ELB-12,'38.000',fontsize=10,color='#000000',ha='center',va='top') ax1.text(x61,ELB-10,'12.000',fontsize=10,color='#000000',ha='center',va='bottom') ax1.text(x71,ELB-12,'26.000',fontsize=10,color='#000000',ha='center',va='top') ax1.text(x81,ELB-10,'11.000',fontsize=10,color='#000000',ha='center',va='bottom') ax1.text(x91,ELB-12,'38.000',fontsize=10,color='#000000',ha='center',va='top') ax1.text(xa1,ELB-10,'12.000',fontsize=10,color='#000000',ha='center',va='bottom') ax1.text(xb1,ELB-12,'41.000',fontsize=10,color='#000000',ha='center',va='top') ax1.text(216,ELB-12,'4.000',fontsize=10,color='#000000',ha='left',va='top') ax1.text(xd1+7.3,ELP+5,'4.600',fontsize=10,color='#000000',ha='center',va='bottom') ax1.text(xe1+7.3,ELP+5,'4.600',fontsize=10,color='#000000',ha='center',va='bottom') ax1.text(xf1+7.3,ELP+5,'4.600',fontsize=10,color='#000000',ha='center',va='bottom') ax1.text(xg1+7.3,ELP+5,'4.600',fontsize=10,color='#000000',ha='center',va='bottom') ax1.text(xz3,ELF+15,'T.C.',fontsize=10,color='#000000',ha='center',va='bottom') ax1.text(xz4,ELF+15,'T.C.',fontsize=10,color='#000000',ha='center',va='bottom') ax1.text(xz7,ELF+15,'T.C.',fontsize=10,color='#000000',ha='center',va='bottom') ax1.text(xz8,ELF+15,'T.C.',fontsize=10,color='#000000',ha='center',va='bottom') ax1.text(xz3+6.6,ELF+5,'P.C.',fontsize=10,color='#000000',ha='center',va='bottom') ax1.text(xz4+6.6,ELF+5,'P.C.',fontsize=10,color='#000000',ha='center',va='bottom') ax1.text(xz7+6.6,ELF+5,'P.C.',fontsize=10,color='#000000',ha='center',va='bottom') ax1.text(xz8+6.6,ELF+5,'P.C.',fontsize=10,color='#000000',ha='center',va='bottom') ax1.text(xb2,ELF-6,'Cable Pit',fontsize=10,color='#000000',ha='center',va='top') ax1.set_xlim([xmin,xmax]) ax1.set_ylim([ymin,ymax]) ax1.set_xticks(np.arange(xmin,xmax,50)) ax1.set_yticks(np.arange(ymin,ymax+10,10)) ax1.set_xlabel('Distance in Longitudinal-direction (m)',fontsize=10) ax1.set_ylabel('Elevation (EL.m)',fontsize=10) aspect=1.0*(ymax-ymin)/(xmax-xmin)*(ax1.get_xlim()[1] - ax1.get_xlim()[0]) / (ax1.get_ylim()[1] - ax1.get_ylim()[0]) ax1.set_aspect(aspect) #ax1.set_axis_off() ax1.axis["right"].set_visible(False) ax1.axis["top"].set_visible(False) fnameF='fig_ps_sec3.png' plt.savefig(fnameF,dpi=300) plt.show() plt.close()