src/layered/perfs.plot

    # "infinite" loop
    do for [i=0:1000000] {
    
    reset
    unset mouse
    
    mpl_top    = 0.4 #inch  outer top margin, title goes here
    mpl_bot    = 1.0 #inch  outer bottom margin, x label goes here
    mpl_left   = 1.0 #inch  outer left margin, y label goes here
    mpl_right  = 1.0 #inch  outer right margin, y2 label goes here
    mpl_height = 3.0 #inch  height of individual plots
    mpl_width  = 3.0 #inch  width of individual plots
    mpl_dx     = 0.2 #inch  inter-plot horizontal spacing
    mpl_dy     = 0.4 #inch  inter-plot vertical spacing
    mpl_ny     = 3   #number of rows
    mpl_nx     = 2   #number of columns
    
    # calculate full dimensions
    xsize = mpl_left+mpl_right+(mpl_width*mpl_nx)+(mpl_nx-1)*mpl_dx
    ysize = mpl_top+mpl_bot+(mpl_ny*mpl_height)+(mpl_ny-1)*mpl_dy
    
    # placement functions
    #   rows are numbered from bottom to top
    bot(n) = (mpl_bot+(n-1)*mpl_height+(n-1)*mpl_dy)/ysize
    top(n)  = 1-((mpl_top+(mpl_ny-n)*(mpl_height+mpl_dy))/ysize)
    #   columns are numbered from left to right
    left(n) = (mpl_left+(n-1)*mpl_width+(n-1)*mpl_dx)/xsize
    right(n)  = 1-((mpl_right+(mpl_nx-n)*(mpl_width+mpl_dx))/xsize)
    
    set offsets
    set autoscale fix
    set size 1,1
    
    # define x-axis settings for all subplots
    set xlabel ''
    set format x ''
    
    # start plotting
    set multiplot
    
    stats "perfs" u 1:5 nooutput
    EVERY = ceil(STATS_records/200.)
    unset key
    set style fill solid
    
    #-----------------------------------------------
    # subplot  1-4
    #  set horizontal margins for first column
    set lmargin at screen left(1)
    set rmargin at screen right(1)
    #  set horizontal margins for third row (top)
    set tmargin at screen top(3)
    set bmargin at screen bot(3)
    
    set ylabel "dt"
    set logscale y
    plot 'perfs' u 1:2 every EVERY w boxes lc 0
    unset logscale y
    
    #-----------------------------------------------
    # subplot  2-4
    #  set horizontal margins for second column
    set lmargin at screen left(2)
    set rmargin at screen right(2)
    #  set horizontal margins for third row (top)
    set tmargin at screen top(3)
    set bmargin at screen bot(3)
    
    stats "perfs" u 1:5 nooutput
    if (STATS_min_y == STATS_max_y) { set y2range [STATS_max_y-1:STATS_max_y+1]; } \
    else { set y2range [STATS_min_y:STATS_max_y]; }
    unset ytics
    set y2tics
    unset ylabel
    set y2label '# cells'
    plot 'perfs' u 1:5 every EVERY w boxes lc 0
    set yrange [*:*]
    
    #-----------------------------------------------
    # subplot  1-3
    #  set horizontal margins for first column
    set lmargin at screen left(1)
    set rmargin at screen right(1)
    #  set horizontal margins for second row (middle)
    set tmargin at screen top(2)
    set bmargin at screen bot(2)
    
    unset ylabel
    unset y2label
    set ytics auto
    unset y2tics
    colori(i) = (i < 10 ? 65280 : i > 20 ? 16711680 : 16753920)
    set ylabel 'mgp.i'
    plot [][0:]'perfs' u 1:3:(colori($3)) every EVERY w boxes lc rgbcolor variable
    
    #-----------------------------------------------
    # subplot  2-3
    #  set horizontal margins for second column
    set lmargin at screen left(2)
    set rmargin at screen right(2)
    #  set horizontal margins for second row (middle)
    set tmargin at screen top(2)
    set bmargin at screen bot(2)
    
    stats "perfs" u 1:4 nooutput
    if (STATS_min_y == STATS_max_y) { set y2range [STATS_max_y-1:STATS_max_y+1]; } \
    else { set y2range [STATS_min_y:STATS_max_y]; }
    unset ytics
    set y2tics auto
    unset ylabel
    set y2label 'mgp.nrelax'
    plot [][0:]'perfs' u 1:4:(colori($4)) every EVERY w boxes lc rgbcolor variable
    
    #-----------------------------------------------
    # subplot  1-2
    #  set horizontal margins for first column
    set lmargin at screen left(1)
    set rmargin at screen right(1)
    #  set horizontal margins for second row (middle)
    set tmargin at screen top(1)
    set bmargin at screen bot(1)
    
    set xlabel "time"
    unset y2label
    set ylabel "Wall-clock time"
    set xtics auto
    set format x '% g'
    unset y2tics
    set ytics auto
    plot 'perfs' u 1:6 every EVERY w boxes lc 0
    
    #-----------------------------------------------
    # subplot  2-2
    #  set horizontal margins for second column
    set lmargin at screen left(2)
    set rmargin at screen right(2)
    #  set horizontal margins for second row (middle)
    set tmargin at screen top(1)
    set bmargin at screen bot(1)
    
    stats "perfs" u 1:($7/$8) nooutput
    if (STATS_min_y == STATS_max_y) { set y2range [STATS_max_y-1:STATS_max_y+1]; } \
    else { set y2range [STATS_min_y:STATS_max_y]; }
    unset ytics
    set y2tics auto
    unset ylabel
    set y2label 'points.step/sec/core'
    set format y '%e'
    plot 'perfs' u 1:($9/$8) every EVERY w boxes lc 0
    
    unset multiplot
    
    pause 10
    
    # end of infinite loop
    
    }