@(@\newcommand{\B}[1]{ {\bf #1} }
\newcommand{\R}[1]{ {\rm #1} }
\newcommand{\W}[1]{ \; #1 \; }@)@This is dismod_at-20221105 documentation: Here is a link to its
current documentation
.
Example Plotting Log-Scaled Values w.r.t Age and Time
z_name
For this example the name of the z variables are A, B,
C, and D
Age Grid
The age grid for this example in 0.0, 5.0, ..., 100.0.
Time Grid
The time grid for this example is 1980.0, 1985.0, ..., 2020.0.
Function
The function for this example is
@[@
f(a, t) = \lambda * \exp \left[
- \left( \frac{a - 50}{100} \right)^2
- \left( \frac{(t - 2000.0}{20.0} \right)^2
\right]
@]@
where @(@
a
@)@ is age, @(@
t
@)@ is time, and
@(@
lambsa
@)@ is 1, 2, 3, 4 for variables
A, B, C, D respectively.
import sys
import os
import string
import math
test_program = 'example/user/plot_curve.py'
if sys.argv[0] != test_program orlen(sys.argv) != 1 :
usage = 'python3 ' + test_program + '\n'
usage += 'where python3 is the python 3 program on your system\n'
usage += 'and working directory is the dismod_at distribution directory\n'
sys.exit(usage)
print(test_program)
## import dismod_at
local_dir = os.getcwd() + '/python'
if( os.path.isdir( local_dir + '/dismod_at' ) ) :
sys.path.insert(0, local_dir)
import dismod_at
## change into the build/example/user directoryifnot os.path.exists('build/example/user') :
os.makedirs('build/example/user')
os.chdir('build/example/user')
## fundeffun(a, t, z_name) :
index = ord(z_name) - ord('A')
factor = index + 1
a_scaled = (a - 50.0) / 100.0
t_scaled = (t - 2000.0) / 20.0
quad = a_scaled**2 + t_scaled**2
z = factor * math.exp( - quad )
return z
## plot_data
plot_data = dict()
for z_name in [ 'A', 'B', 'C', 'D' ] :
plot_data[z_name] = list()
for age inrange(0, 101, 5) :
for time inrange(1980, 2021, 5) :
value = fun(age, time, z_name)
std = value / 10.0
row = { 'age': age, 'time': time, 'value': value, 'std': std }
plot_data[z_name].append( row )
## plot_limit
plot_limit = {
'age_min': 0.0, 'age_max': 100.0, 'time_min': 1980.0, 'time_max': 2020.0
}
## plot_curve
pdf_file = 'example.pdf'
plot_title = 'Example Curve Plot'
dismod_at.plot_curve( pdf_file, plot_title, plot_limit, plot_data)
# -----------------------------------------------------------------------------print(f'Plot file: build/example/user/{pdf_file}')
print('plot_curve.py: OK')