Blame demo/sampling.dem

Packit 0986c0
# 18 Aug 2017
Packit 0986c0
# Each of these plot commands failed on some version between 5.0 and 5.3.
Packit 0986c0
# I collect them here to use as unit tests for continued success
Packit 0986c0
# of the code added to repair breakage.
Packit 0986c0
#
Packit 0986c0
# Usage:  call 'sampling.dem' <testno>
Packit 0986c0
#
Packit 0986c0
Packit 0986c0
set urange [1:100]
Packit 0986c0
set vrange [1:100]
Packit 0986c0
set xrange [1:100]
Packit 0986c0
set key opaque box
Packit 0986c0
set style data line
Packit 0986c0
Packit 0986c0
if (ARGC < 1) ARG1 = 0
Packit 0986c0
Packit 0986c0
set trange [20:50]
Packit 0986c0
Packit 0986c0
if (ARG1 <= 1) {
Packit 0986c0
    print "test 1: explicit trange distinct from xrange"
Packit 0986c0
    plot '+' using 1:(10. + sin($1)) title "trange [20:50]"
Packit 0986c0
    pause -1 "Hit <cr> to continue"
Packit 0986c0
}
Packit 0986c0
Packit 0986c0
if (ARG1 <= 2) {
Packit 0986c0
    print "test 2: range set by 'sample' keyword, linear x axis"
Packit 0986c0
    plot sample [t=20:50] '+' using (t):(10. + sin(t))
Packit 0986c0
    pause -1 "Hit <cr> to continue"
Packit 0986c0
}
Packit 0986c0
Packit 0986c0
Packit 0986c0
set log x
Packit 0986c0
Packit 0986c0
if (ARG1 <= 3) {
Packit 0986c0
    print "test 3: range set by 'sample' keyword, logscale x axis"
Packit 0986c0
    plot sample [t=20:50] '+' using (t):(10. + sin(t))
Packit 0986c0
    pause -1 "Hit <cr> to continue"
Packit 0986c0
}
Packit 0986c0
Packit 0986c0
unset log
Packit 0986c0
Packit 0986c0
if (ARG1 <= 4) {
Packit 0986c0
    print "test 4: splot '++' with autoscaled y (linear xy)"
Packit 0986c0
    splot '++' using 1:2:($1*$2)
Packit 0986c0
    pause -1 "Hit <cr> to continue"
Packit 0986c0
}
Packit 0986c0
Packit 0986c0
set log xy
Packit 0986c0
Packit 0986c0
if (ARG1 <= 5) {
Packit 0986c0
    print "test 5: splot '++' with autoscaled y (logscale xy)"
Packit 0986c0
    splot '++' using 1:2:($1*$2)
Packit 0986c0
    pause -1 "Hit <cr> to continue"
Packit 0986c0
}
Packit 0986c0
Packit 0986c0
unset log
Packit 0986c0
Packit 0986c0
if (ARG1 <= 6) {
Packit 0986c0
    print "test 6: plot '++' with image (linear xy)"
Packit 0986c0
    plot '++' using 1:2:($1*$2) with image
Packit 0986c0
    pause -1 "Hit <cr> to continue"
Packit 0986c0
}
Packit 0986c0
Packit 0986c0
Packit 0986c0
set log xy
Packit 0986c0
Packit 0986c0
if (ARG1 <= 7) {
Packit 0986c0
    print "test 7: plot '++' with image (logscale xy)"
Packit 0986c0
    plot '++' using 1:2:($1*$2) with image
Packit 0986c0
    pause -1 "Hit <cr> to continue"
Packit 0986c0
}
Packit 0986c0
Packit 0986c0
reset 
Packit 0986c0
#
Packit 0986c0
#  piecewise functions along nonlinear x axis
Packit 0986c0
#
Packit 0986c0
unset border
Packit 0986c0
set key center top reverse Left
Packit 0986c0
set xzeroaxis
Packit 0986c0
set yzeroaxis
Packit 0986c0
set xtics axis out scale 1,8
Packit 0986c0
set xtics add  (1.00000 1, 6.28319 1)
Packit 0986c0
set ytics axis
Packit 0986c0
set xrange [ .1 : 12 ] noreverse nowriteback
Packit 0986c0
Packit 0986c0
Packit 0986c0
Packit 0986c0
if (ARG1 <= 8) {
Packit 0986c0
    print "test 8: multiple sampling ranges in one 2D plot command"
Packit 0986c0
    set multiplot layout 2,1
Packit 0986c0
    set title "Piecewise function sampling along linear x" font ",13"
Packit 0986c0
    plot sample [*:1] x, [1:2.*pi] cos(x), [2.*pi:10] (x-8)**2
Packit 0986c0
    set nonlinear x via x inv x
Packit 0986c0
    set title "nonlinear (identity mapped) x" font ",13"
Packit 0986c0
    plot sample [*:1] x, [1:2.*pi] cos(x), [2.*pi:10] (x-8)**2
Packit 0986c0
    unset multiplot
Packit 0986c0
    pause -1 "Hit <cr> to continue"
Packit 0986c0
}
Packit 0986c0
Packit 0986c0
reset
Packit 0986c0
Packit 0986c0
set xrange [1:100]
Packit 0986c0
set yrange [1:100]
Packit 0986c0
set urange [0:100]
Packit 0986c0
set vrange [70:90]
Packit 0986c0
set style data lines
Packit 0986c0
set xyplane at 0
Packit 0986c0
Packit 0986c0
set hidden3d
Packit 0986c0
set title "3D sampling range distinct from plot x/y range"
Packit 0986c0
print "test 9: 3D sampling range distinct from plot x/y range"
Packit 0986c0
Packit 0986c0
splot '++' using 1:2:($1*25.*sin($2/10)), \
Packit 0986c0
      [u=30:70][v=0:50] '++' using 1:2:(u*v), \
Packit 0986c0
      [u=40:80][v=30:60] '++' using (u):(v):(u*sqrt(v)) lt 4, \
Packit 0986c0
      [u=1:100][v=500:1000] '++' using (90):(u):(v) lt 6
Packit 0986c0
Packit 0986c0
pause -1 "Hit <cr> to continue"
Packit 0986c0
Packit 0986c0
reset
Packit 0986c0
Packit 0986c0
unset key
Packit 0986c0
set view map
Packit 0986c0
set xrange [ 20:100 ]
Packit 0986c0
set yrange [ 0:80 ]
Packit 0986c0
set size ratio 1.0
Packit 0986c0
radius(x,y) = 10 * sqrt((x-50)**2 + (y-50)**2)
Packit 0986c0
alpha(x,y) = radius(x,y) > 255 ? 0 : 255-radius(x,y)
Packit 0986c0
set title "3D custom sampling on u and v using pseudofile '++'"
Packit 0986c0
print "test 10: splot '++' with explicit sampling intervals"
Packit 0986c0
Packit 0986c0
splot sample [u=25:75:1][v=25:75:4] '++' \
Packit 0986c0
      using 1:2:0:(u*4-50):(v*4-50):(255*sin(u*v/2500.)):(alpha(u,v)) with rgbalpha, \
Packit 0986c0
      [u=25:75:4][v=25:75:1] '++' \
Packit 0986c0
      using (u+20):(v-20):0:(u*4-50):(v*4-50):(255*sin(u*v/2500.)):(alpha(u,v)) with rgbalpha
Packit 0986c0
Packit 0986c0
pause -1 "Hit <cr> to continue"
Packit 0986c0
Packit 0986c0
set title "2D custom sampling on u and v using pseudofile '++'"
Packit 0986c0
print "test 10: plot '++' with explicit sampling intervals"
Packit 0986c0
Packit 0986c0
plot sample [u=25:75:1][v=25:75:4] '++' \
Packit 0986c0
      using 1:2:(u*4-50):(v*4-50):(255*sin(u*v/2500.)):(alpha(u,v)) with rgbalpha, \
Packit 0986c0
      [u=25:75:4][v=25:75:1] '++' \
Packit 0986c0
      using (u+20):(v-20):(u*4-50):(v*4-50):(255*sin(u*v/2500.)):(alpha(u,v)) with rgbalpha
Packit 0986c0
Packit 0986c0
pause -1 "Hit <cr> to continue"
Packit 0986c0
Packit 0986c0
reset
Packit 0986c0