#!/bin/bash plotfile="temp.plt" outfile="ci.pdf" let "numfiles = 0" for ncmd in $* do # check for existing file name if [ -e "${ncmd}" ] then # valid file name let "numfiles = numfiles + 1" filename[numfiles]="${ncmd}" else # file does not exist echo 'File ${ncmd} does not exist' echo 'invocation: plot_ci [file-1] [file-2] ... [file-#]' exit fi done if [[ numfiles -eq 0 ]] then echo 'invocation: plot_ci [file-1] [file-2] ... [file-#]' exit fi echo "# GNUPLOT commands to plot confidence intervals" > ${plotfile} echo "set terminal pdf font 'Helvetica,3'" >> ${plotfile} echo "set output '${outfile}'" >> ${plotfile} echo "set logscale y" >> ${plotfile} echo "set yrange [0.1:100]" >> ${plotfile} echo "set xlabel 'number of rotations'" >> ${plotfile} echo "set ylabel 'Erosion (T/Ac)'" >> ${plotfile} echo "set title 'Ave. Annual Erosion (thick line), Confidence Intervals (thin line)' " >> ${plotfile} echo "plot \\" >> ${plotfile} # step through file names for step in $( seq 1 ${numfiles} ) do # extract mean and confidence interval from ci.out files cat ${filename[step]} | dm "if INLINE > 1 then INPUT else SKIP" | sed 's/|/ /g' | dm "if N > 5 then INPUT else SKIP" | dm x2 x6*4.44 x7*4.44 x8*4.44 > ci_${step}.out # index for line types let "idx = idx + 1" # create plot lines echo "'ci_${step}.out' u 1:2 with lines lt ${idx} lw 3 title '${filename[step]}', \\" >> ${plotfile} echo "'ci_${step}.out' u 1:3 with lines lt ${idx} notitle, \\" >> ${plotfile} if [ ${idx} -eq ${numfiles} ] then echo "'ci_${step}.out' u 1:4 with lines lt ${idx} notitle" >> ${plotfile} else echo "'ci_${step}.out' u 1:4 with lines lt ${idx} notitle, \\" >> ${plotfile} fi done # Create a plot of annual erosion rates # idx value retained from above let "idx = 0" echo "reset" >> ${plotfile} echo "set xlabel 'simulation year'" >> ${plotfile} echo "set ylabel 'Annual Erosion (T/Ac)'" >> ${plotfile} boxwidth=$( echo "scale=4; 1/(${idx}+1)" | bc -l ) echo "set boxwidth ${boxwidth} absolute" >> ${plotfile} echo "set style fill solid 1.00 border -1" >> ${plotfile} echo "set grid nopolar" >> ${plotfile} echo "set grid noxtics nomxtics ytics nomytics noztics nomztics \\" >> ${plotfile} echo "nox2tics nomx2tics noy2tics nomy2tics nocbtics nomcbtics" >> ${plotfile} echo "set xrange [0:]" >> ${plotfile} echo "set yrange [0:100]" >> ${plotfile} for step in $( seq 1 ${numfiles} ) do # extract average annual erosion values for each year from ci.out files cat ${filename[step]} | dm "if INLINE > 1 then INPUT else SKIP" | sed 's/|/ /g' | dm x3 x5*4.44 > eros_${step}.out # index for graph color let "idx = idx + 1" # create individual plots echo "set title '${filename[step]}' " >> ${plotfile} echo "plot \\" >> ${plotfile} echo "'eros_${step}.out' using 1:2 with boxes lt ${idx} notitle" >> ${plotfile} done gnuplot ${plotfile} # remove temporary files rm ${plotfile} for step in $( seq 1 ${numfiles} ) do rm ci_${step}.out rm eros_${step}.out done