#
# Gnuplot version 5.0 demo of multiplot auto-layout capability
#
#
set multiplot layout 3, 1 title "Multiplot layout 3, 1" font ",14"
set tmargin 2
set title "Plot 1"
unset key
plot sin(x)/x
#
set title "Plot 2"
unset key
plot 'silver.dat' using 1:2 ti 'silver.dat'
#
set style histogram columns
set style fill solid
set key autotitle column
set boxwidth 0.8
set format y "    "
set tics scale 0
set title "Plot 3"
plot 'immigration.dat' using 2 with histograms, \
     '' using 7  with histograms , \
     '' using 8  with histograms , \
     '' using 11 with histograms 
#
unset multiplot
#
#
#
pause -1 "<cr> to continue"
reset
set multiplot layout 1,3 title "Multiplot layout 1, 3" font ",14"
set xtics rotate
set bmargin 5
#
set title "Plot 1"
unset key
plot sin(x)/x
#
set title "Plot 2"
unset key
plot 'silver.dat' using 1:2 ti 'silver.dat'
#
set title "Plot 3"
set style histogram columns
set style fill solid
set key autotitle column
set boxwidth 0.8
set format y "    "
set tics scale 0
plot 'immigration.dat' using 2 with histograms , \
     '' using  7 with histograms , \
     '' using  8 with histograms , \
     '' using 11 with histograms 
#
unset multiplot
#
#
#
#
pause -1 "<cr> to continue"
reset
set multiplot layout 1,3 title "Same plot with a multi-line title\nshowing adjustment of plot area\n to accommodate it" font ",14"
set xtics rotate
set bmargin 5
#
set title "Plot 1"
unset key
plot sin(x)/x
#
set title "Plot 2"
unset key
plot 'silver.dat' using 1:2 ti 'silver.dat'
#
set title "Plot 3"
set style histogram columns
set style fill solid
set key autotitle column
set boxwidth 0.8
set format y "    "
set tics scale 0
plot 'immigration.dat' using 2 with histograms , \
     '' using  7 with histograms , \
     '' using  8 with histograms , \
     '' using 11 with histograms 
#
unset multiplot
pause -1 "<cr> to continue"
#
#          Stacked Plot Demo
#
# Set top and bottom margins to 0 so that there is no space between plots.
# Fix left and right margins to make sure that the alignment is perfect.
# Turn off xtics for all plots except the bottom one.
# In order to leave room for axis and tic labels underneath, we ask for
# a 4-plot layout but only use the top 3 slots.
#
set tmargin 0
set bmargin 0
set lmargin 3
set rmargin 3
unset xtics
unset ytics

set multiplot layout 4,1 title "Auto-layout of stacked plots\n" font ",12"

set key autotitle column nobox samplen 1 noenhanced
unset title
set style data boxes
set yrange [0 : 800000]

plot 'immigration.dat' using 3 lt 1
plot 'immigration.dat' using 8 lt 3
set xtics nomirror
set tics scale 0 font ",8"
set xlabel "Immigration to U.S. by Decade"
plot 'immigration.dat' using 21:xtic(1) lt 4

unset multiplot
pause -1 "<cr> to continue"
#
#          Stacked Plot Demo Continued
#
# Another option is to expand the (N-1)th plot to fill 
# additional space
#
unset xlabel
unset xtics
unset ytics

set multiplot layout 6,1 title "Expanding one of the plots to use additional space\n" font ",12"

set key autotitle column nobox samplen 1 noenhanced
unset title
set style data boxes
set yrange [0 : 800000]

plot 'immigration.dat' using 3 lt 1
plot 'immigration.dat' using 8 lt 3
plot 'immigration.dat' using 21 lt 4
set xtics nomirror
set tics scale 0 font ",8"
set xlabel "Immigration to U.S. by Decade"

# Override automatic calculation of lower plot boundary
set bmargin at screen 0.1
set yrange [0:*]
plot 'immigration.dat' using ($3+$8+$21):xtic(1) lt 9 title "Total"

unset multiplot
pause -1 "<cr> to continue"

reset

#
# Set overall margins for the combined set of plots and size them
# to generate a requested inter-plot spacing
#
if (!exists("MP_LEFT"))   MP_LEFT = .1
if (!exists("MP_RIGHT"))  MP_RIGHT = .95
if (!exists("MP_BOTTOM")) MP_BOTTOM = .1
if (!exists("MP_TOP"))    MP_TOP = .9
if (!exists("MP_GAP"))    MP_GAP = 0.05

set multiplot layout 2,2 columnsfirst title "{/:Bold=15 Multiplot with explicit page margins}" \
              margins screen MP_LEFT, MP_RIGHT, MP_BOTTOM, MP_TOP spacing screen MP_GAP

set format y "%.1f"
set key box opaque
set ylabel 'ylabel'
set xrange [-2*pi:2*pi]

plot sin(x) lt 1
set xlabel 'xlabel'
plot cos(x) lt 2

unset ylabel
unset ytics

unset xlabel
plot sin(2*x) lt 3
set xlabel 'xlabel'
plot cos(2*x) lt 4
unset multiplot

pause -1 "<cr> to continue"

reset
