#!/bin/bash # # Plot output of an ns run # function usage { echo 2>&1 "Usage: $0 [-w <width>] [-h <height>] [-t <title>] [-x <xlabel>] [-y <ylabel>] [-lt ltfile | -s <scores>] [-c <colorfile>] [-v] [<datafile>]" echo 2>&1 echo 2>&1 "You can also specify additional options accepted by plot:" plot --help exit 1 } ltfile=ns.lt colorfile=ns.col plotoptions= yrange="[-10:110]" title=" " width=350 height=200 varbands= xlabel="Time (days)" ylabel="Score" while [ $# -gt 0 ] do case "$1" in --help) usage;; -lt) ltfile="$2"; shift;; -s) scores="$2"; shift;; -c) colorfile="$2"; shift;; -w) width="$2"; shift;; -h) height="$2"; shift;; -t) title="$2"; shift;; -x) xlabel="$2"; shift;; -y) ylabel="$2"; shift;; -v) varbands=true;; --) shift; break;; -*) plotoptions="$plotoptions $1 $2"; shift;; *) if [ "$datafile" == "" ] then datafile=$1; else echo "extra arg: $1" usage fi;; esac shift done # word counter function wordcount() { echo $#; } v_option= if [ "$scores" != "" ]; then scores=`echo $scores|sed 's/,/ /g'` columns_cmd="columns time $scores" if [ "$varbands" != "" ]; then # add the sterr columns columns_cmd="$columns_cmd `echo $scores | sed 's/\</S_'/g`" (( vcol = `wordcount $scores` + 2 )) # including the 'time' column v_option="-v $vcol" else plotoptions="$plotoptions -x11" fi ltfile=/tmp/$$.lt #set -i i i=1 for m in $scores; do color=`egrep "^\<$m\>" $colorfile | awk '{print $2}'` if [ "$color" == "" ]; then echo $m not found in $colorfile exit fi echo "set linetype $i lc rgb \"$color\" lw 2" >> $ltfile (( i++ )) done else columns_cmd=cat fi cat $datafile | $columns_cmd | plot -u -t " " -k "bmargin left horizontal spacing 1 samplen 1" -x "$xlabel" -y "$ylabel" -t "$title" -w "$width" -h "$height" $v_option $plotoptions -lt $ltfile