#
# Generate a set of figures to illustrate the various plot styles.
# These figures are imported into the pdf and html versions of the
# User Manual.
#
# EAM - July 2007
#
if (strstrt(GPVAL_TERMINALS, " windows ") == 0) {
fontspec = "Times,12"
} else {
fontspec = "Tahoma,12"
}
MANUAL_FIGURES = 1
if (!exists("winhelp")) winhelp = 0
if (winhelp > 0) {
# prefer pngcairo over gd based png
if (strstrt(GPVAL_TERMINALS, " pngcairo ") > 0) {
set term pngcairo font fontspec size 448,225 dashlength 0.2 fontscale 0.6
} else {
set term png font fontspec size 448,225 dashlength 0.2 fontscale 0.6
}
out = "./windows/"
} else if (GNUTERM eq "svg") {
set term svg font 'Calisto MT,14' size 600,400
out = "./html/"
} else if (GNUTERM eq "tikz") {
set term tikz color fontscale 0.75 clip size 3.0in, 1.7in
out = "./"
} else {
set term pdfcairo mono font fontspec size 3.5,2.0 dashlength 0.2
# pdfs that need colour have their own terminal setting, check below
out = "./"
}
set loadpath '../demo'
if (GPVAL_TERM eq "pngcairo" || GPVAL_TERM eq "png") ext=".png"
if (GPVAL_TERM eq "pdfcairo" || GPVAL_TERM eq "pdf") ext=".pdf"
if (GPVAL_TERM eq "svg") ext=".svg"
if (GPVAL_TERM eq "tikz") ext=".tex"
set encoding utf8
#
# Line and point type plots (same data plotted)
# ==============================================
#
set output out . 'figure_lines' . ext
set xrange [270:370]
unset xtics
unset ytics
set offset 10,10,4,2
set xzeroaxis
set lmargin screen 0.05
set rmargin screen 0.95
set bmargin screen 0.05
set tmargin screen 0.95
plot 'silver.dat' u 1:($2-10.) title 'with lines' with lines
#
set output out . 'figure_points' . ext
plot 'silver.dat' u 1:($2-10.):(1+rand(0)) title 'with points ps variable' \
with points ps variable pt 6
#
set output out . 'figure_linespoints' . ext
set key opaque height 1
f(x) = 8 + 8*sin(x/20)
plot 'silver.dat' u 1:($2-10.) title 'with linespoints' \
with linespoints pt 6 ps 1, \
'' u 1:($2) title 'pointinterval -2' with lp pt 4 ps 1 pi -2, \
'' u 1:($2+10.) with lp pt "α" pi -1 font ",18" title 'with lp pt "α" pi -1'
set key noopaque
#
set output out . 'figure_fsteps' . ext
plot 'silver.dat' u 1:($2-10.) title 'with fsteps' with fsteps, \
'' u 1:($2-10.) with points pt 7 ps 0.5 lc "black" title 'data points'
#
set output out . 'figure_steps' . ext
set style fill solid 0.25 noborder
plot 'silver.dat' u 1:($2-10.) title 'with fillsteps' with fillsteps, \
'' u 1:($2-10.) title 'with steps' with steps lw 3 dt solid, \
'' u 1:($2-10.) with points pt 7 ps 0.5 lc "black" title 'data points'
#
set output out . 'figure_histeps' . ext
plot 'silver.dat' u 1:($2-10.) title 'with histeps' with histeps, \
'' u 1:($2-10.) with points pt 7 ps 0.5 lc "black" title 'data points'
#
symbol(z) = "â¢â¡+ââ â£â¡â¢"[int(z):int(z)]
set output out . 'figure_labels2' . ext
plot 'silver.dat' u 1:($2-10.):(symbol(1+int($0)%8)) \
with labels font ",18" title "with labels"
#
# Simple bar charts (same data plotted)
# ======================================
#
# (no reset, keep settings from previous example set)
set output out . 'figure_boxes' . ext
set xzeroaxis
set boxwidth 0.8 relative
plot 'silver.dat' u 1:($2-10.) with boxes title 'with boxes' fs solid 0.5
#
set output out . 'figure_boxerrorbars' . ext
set boxwidth 0.8 relative
plot 'silver.dat' u 1:($2-10.):(3*rand(0)) with boxerrorbars title 'with boxerrorbars' fs solid 0.5 fc "blue"
#
set output out . 'figure_impulses' . ext
set bmargin at screen .2
plot 'silver.dat' u 1:($2-10.) with impulses lw 2 title 'with impulses'
set bmargin at screen .05
#
# Error bars and whisker plots
# ============================
#
# (no reset, keep settings from previous example sets)
set xrange [0:11]
set yrange [0:10]
set boxwidth 0.2
unset xzeroaxis
unset offset
#
set output out . 'figure_candlesticks' . ext
plot 'candlesticks.dat' using 1:3:2:6:5 title 'with candlesticks' with candlesticks whiskerbar fs solid 0.5 fc "cyan"
#
set output out . 'figure_financebars' . ext
set bars 4
plot 'candlesticks.dat' using 1:3:2:6:5 title 'with financebars' with financebars
set bars 1
#
set output out . 'figure_yerrorbars' . ext
plot 'candlesticks.dat' using 1:4:3:5 with yerrorbars title 'with yerrorbars'
#
set output out . 'figure_yerrorlines' . ext
plot 'candlesticks.dat' using 1:4:3:5 with yerrorlines title 'with yerrorlines'
#
set output out . 'figure_boxxyerror' . ext
plot 'candlesticks.dat' using 1:4:($1-sin($1)/2.):($1+sin($1)/2.):3:5 \
with boxxyerror title 'with boxxyerror' fs empty
#
set output out . 'figure_xyerrorbars' . ext
plot 'candlesticks.dat' using 1:4:($1-sin($1)/2.):($1+sin($1)/2.):3:5 \
with xyerrorbars title 'with xyerrorbars'
#
set output out . 'figure_xyerrorlines' . ext
plot 'candlesticks.dat' using 1:4:($1-sin($1)/2.):($1+sin($1)/2.):3:5 \
with xyerrorlines title 'with xyerrorlines'
#
set output out . 'figure_xerrorbars' . ext
plot 'candlesticks.dat' using 1:4:($1-sin($1)/2.):($1+sin($1)/2.) \
with xerrorbars title 'with xerrorbars'
#
set output out . 'figure_xerrorlines' . ext
plot 'candlesticks.dat' using 1:4:($1-sin($1)/2.):($1+sin($1)/2.) \
with xerrorlines title 'with xerrorlines'
#
#
# Boxplot
# =======
#
set output out . 'figure_boxplot' . ext
reset
set style fill solid 0.25 border -1
set yrange [-15:165]
set xrange [0.5:2.0]
set xtics ("A" 1, "B" 1.5) scale 0
set ytics nomirror
set border 2
set lmargin at screen 0.3
unset key
set style data boxplot
plot 'silver.dat' using (1):2:(.25) ps 0.3, \
'' using (1.5):(5*$3):(.25) ps 0.3
#
# Dots
# ====
#
set output out . 'figure_dots' . ext
reset
set parametric
set samples 500
set isosamples 2,2 # Smallest possible
set view map
set lmargin screen 0.05
set rmargin screen 0.95
set tmargin screen 0.95
set bmargin screen 0.05
unset xtics
unset ytics
set xrange [-3:3]
set yrange [-4:4]
splot invnorm(rand(0)),invnorm(rand(0)),invnorm(rand(0)) with dots notitle
#
# Circles
# =======
#
reset
set output out . 'figure_circles' . ext
#set title "Circles of Uncertainty"
unset key
set size ratio -1
set xrange [-2.5:1.5]
set yrange [-1:2.5]
set xtics font ",10" format "%.1f" scale 0.5
set ytics font ",10" format "%.1f" scale 0.5
plot 'optimize.dat' with circles lc rgb "gray" fs transparent solid 0.2 nobo,\
'optimize.dat' u 1:2 with linespoints lw 2 pt 7 ps 0.3 lc rgb "black"
#
# Ellipses
# ========
#
reset
set output out . 'figure_ellipses' . ext
unset xtics; unset ytics
plot 'ellipses.dat' u 1:2:3:4:5 with ellipses units xy title "with ellipses",\
'' u 1:2:3:4:5 with ellipses units xx notitle,\
'' u 1:2:3:4:5 with ellipses units yy notitle
reset
#########################################################
# annular sector definition for "with sectors"
#########################################################
#
set output out . 'figure_sector_definition' . ext
set title 'A single annular sector in plot style "with sectors"' offset -2,-1
set polar
set angles degree
set theta top cw
set xrange [-3:10]
set yrange [-3:10]
set size ratio -1
unset border
set lmargin 8
unset raxis
unset tics
unset key
array data[1]
set arrow 1 from 6,0 to 9,0
set arrow 1 heads size screen 0.015, 30, 90 filled front lw 1 lc rgb "gray30"
set arrow 2 from polar 28, 9.7 to polar 62, 9.7
set arrow 2 heads size screen 0.015, 30, 90 filled front lw 1 lc rgb "gray30"
plot \
data using (-30):(6):(300):(3) with sectors lc rgb "gray80" lw 1,\
data using (20):(0):(50):(6) with sectors lc rgb "gray80" lw 1,\
data using (20):(6):(50):(3) with sectors lc rgb "gray30" lw 2 fill solid 0.5 border,\
data using (20):(0):(50):(1) with sectors lc rgb "gray30" lw 1,\
data using (20):(6) with points pt 7 ps 1 lc rgb "gray30", \
data using (0):(0) with points pt 7 ps 1 lc rgb "gray30", \
data using (0):(0):("(center_x, center_y)") with labels offset 0,-1 noenhanced, \
data using (45):(10.):("sector_angle") with labels center noenhanced rotate by -45, \
data using (90):(7.5):("annular_width") with labels offset 0,1.0 noenhanced, \
data using (20):(6):("corner\n(azimuth, radius)") with labels offset -2,-1 right
reset
#
# Following example plots will be set in colour mode for pdf output
#
if (GPVAL_TERM eq "pdfcairo") \
set term pdfcairo color font fontspec size 3.5,2.0 dashlength 0.2
if (GNUTERM eq "tikz") \
set term tikz color fontscale 0.75 clip size 3.0in, 1.7in
#
# 2D heat map from an array of in-line data
# =========================================
#
reset
set output out . 'figure_heatmap' . ext
set title "2D Heat map from in-line array of values" offset 0,0
$HEATMAP << EOD
5 4 3 1 0
2 2 0 0 1
0 0 0 1 0
0 1 2 4 3
EOD
unset key
set bmargin 1
set rmargin at screen 0.9
set tmargin 3
set tics scale 0
unset cbtics
unset xtics
unset colorbox
set xrange [-0.5:4.5]
set x2range [-0.5:4.5]
set yrange [3.5:-0.5]
set x2tics 0,1
set ytics 0,1
set palette rgbformula -3,-3,-3
plot $HEATMAP matrix with image pixels
reset
#########################################################
# polar heatmap positioned in cartesian coordinate
# system. Note that the two halves of the plot
# displaced by shifting the center to x = +/- 0.5.
#########################################################
#
set output out . 'figure_sector_heatmap' . ext
set title "Polar heatmap composed of sectors "\
."positioned on a cartesian x/y plane"
set title offset 0,-1
rmax = 10
dr = 0.5
tmax = 180
dt = 10
f(t,r) = r*cos(t+20*r)**2
set angle degrees
set theta top cw
set xrange [-(rmax+2):(rmax+2)]
set yrange [-(rmax+2):(rmax+2)]
set size ratio -1
set bmargin 0
set tmargin 2
unset border
unset tics
unset key
set palette viridis
set colorbox user size 0.05, 0.6 origin 0.85,0.15
set cbtics
set table $data
splot sample [t=0:tmax-dt:dt] [r=0:rmax-dr:dr] "++" using (t):(r):(0)
unset table
plot $data using 1:2:(dt):(dr):(0.5):(0):(f($1+dt/2,$2+dr/2)) with sectors fc palette fill solid, \
$data using (-$1):2:(-dt):(dr):(-0.5):(0):(f($1+dt/2,$2+dr/2)) with sectors fc palette fill solid
reset
#########################################################
# Windrose (histgram on polar axis)
#########################################################
set output out . 'figure_windrose' . ext
set title "Wind rose\n (polar coordinate histogram using sectors)" offset 0,-2
$data <