-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathplot.sh
executable file
·81 lines (66 loc) · 1.46 KB
/
plot.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
#!/usr/bin/env bash
printbest=false
gpeval="set terminal wxt persist;"
cmd="./evalpow2"
while getopts '0bcn:q:o:s:S:' OPTION
do
case $OPTION in
0) cmd="${cmd} -0"
;;
b) printbest=true
;;
c) cmd="${cmd} -c"
;;
n) cmd="${cmd} -n $OPTARG"
;;
o) gpeval="set terminal ${OPTARG##*.}; set output '$OPTARG';"
#o) gpeval="set terminal ${OPTARG##*.} size 400,300; set output '$OPTARG';"
;;
q) cmd="${cmd} -q $OPTARG"
;;
s) cmd="${cmd} -s $OPTARG"
;;
S) cmd="${cmd} -S $OPTARG"
;;
?) printf "Usage: %s: [-c] [-n bits] [-q quality] [-s start] [-S stop] files" $(basename "$0") >&2
exit 2
;;
esac
done
gpeval="${gpeval}set title \"$0 ${@:3:$(($OPTIND - 3))}\" offset 0,-0.5;"
shift $(($OPTIND - 1))
gpeval="${gpeval}filenames=\""
DIR=`mktemp -d`
trap '{ rm -rf -- "$DIR"; }' EXIT
if [ $printbest ]
then
eval "$cmd -o $DIR/best.so.csv -b"
gpeval="${gpeval}$DIR/best.so.csv "
fi
i=0
for so in "$@"; do
csv="$DIR/$(basename $so).csv"
eval "$cmd -o $csv -l $so"
i=$((i+1))
gpeval="${gpeval}$csv "
done
gpeval="${gpeval}\""
cat <<EOF > $DIR/plot.gp
set grid lt 1 lc rgb "grey" lw 0.5
set datafile separator ','
set logscale y
if (1) {
set xlabel "bits"
set ylabel "bias"
} else {
set xlabel "bits" offset 0,1
set ylabel "bias" offset 4,0
set key spacing 0.6
set yrange[-1:5000]
set tmargin 2
set lmargin 5
set bmargin 2
}
plot for [file in filenames] file u 1:2 w l lw 2 t system(sprintf("basename %s .so.csv",file))
EOF
gnuplot -e "$gpeval" $DIR/plot.gp