위 그림을 그리기 위한 python code는 다음과 같습니다.
from pyx import *
g=graph.graphxy(width=10,
x=graph.axis.log(
title='$t_{Dd}$',min=0.01,max=1000,
painter=graph.axis.painter.regular(gridattrs=[color.gray(0.5)],tickattrs=[color.gray(0.5)])
),
x2=graph.axis.log(min=0.01,max=1000,parter=None,
painter=graph.axis.painter.regular(gridattrs=[color.gray(0.5)])),
y=graph.axis.log(
title='$q_{Dd}$',min=0.001,max=10,
painter=graph.axis.painter.regular(gridattrs=[color.gray(0.5)],tickattrs=[color.gray(0.5)]))
,y2=graph.axis.log(min=0.001,max=10,parter=None,
painter=graph.axis.painter.regular(gridattrs=[color.gray(0.5)]))
)
g.plot([graph.data.file("arps.dat",x=1,y=j) for j in [3,4,5,6,8,9,10,11]],
[graph.style.line([style.linestyle.solid,style.linewidth.Thin,color.gray(0.3)])])
g.plot([graph.data.file("arps.dat",x=1,y=j) for j in [2,7,12]],[graph.style.line([style.linestyle.solid,style.linewidth.Thick])])
g.text(5,0.5,r"$b=0.0$")
g.text(6.7,0.5,r"$b=0.5$")
g.text(8.8,0.5,r"$b=1.0$")
g.writeEPSfile('typeCurve')
그리고 데이터를 만들기 위한 code는 다음과 같습니다.
import math
fout='arps.dat'
f=open(fout,'w')
for it in range(-30,40):
tdd=10.0**(it/10.0)
q=range(11)
q[0]=math.exp(-tdd)
for ib in range(1,11):
b=ib*0.1
q[ib]=(1+b*tdd)**(-1/b)
f.write("%s"%tdd)
for j in range(0,11):
f.write(" %s"%q[j])
f.write("\n")
f.close()
아래의 그림들은 다음의 data를 이용하여 그렸습니다.
계속 읽기 ‘PyX example – Typecurve, Reserve’
