|
|
1.1 ! root 1: awk ' ! 2: # Default values and initial output ! 3: BEGIN { spreadtext="0" ! 4: symboltext="circle" ! 5: fname="XXX" ! 6: white[" "]=1; white["\t"]=1 # white space ! 7: print ".G1" ! 8: print "graph " fname "01" ! 9: print " ticks off; frame ht 0 wid 0 invis" ! 10: } ! 11: ! 12: # Parse all commands, global first then for each var ! 13: { rest="" } # rest = input line after $1 ! 14: NF>1 { i=0 ! 15: while ( white[substr($0,++i,1)]); ! 16: while (!white[substr($0,++i,1)]); ! 17: rest=substr($0,i+1) } ! 18: $1=="frames" { frametext=rest } ! 19: $1=="spread" { spreadtext=$2 } ! 20: $1=="file" { filetext=$2 } ! 21: $1=="symbol" { symboltext=rest } ! 22: $1=="allticks" { alltickstext=rest } ! 23: $1=="alllog" { wantalllog=1 } ! 24: $1=="allrange" { allrangeset=1; allrangelo=$2; allrangehi=$3 } ! 25: $1=="once" { print rest } ! 26: $1=="eachgraph" { graphtext[++graphcnt]=rest } ! 27: $1=="eachline" { linetext[++linecnt]=rest } ! 28: $1=="diagdown" { diagdown=1 } ! 29: ! 30: $1=="name" { if (substr(rest,1,1) != "\"") rest="\"" rest "\"" ! 31: var++; nametext[var]=rest ! 32: } ! 33: $1=="ticks" { tickstext[var]=rest } ! 34: $1=="range" { rangeset[var]=1; rangelo[var]=$2; rangehi[var]=$3 } ! 35: $1=="log" { wantlog[var]=1 } ! 36: $1=="field" { fieldtext[var]=$2 } ! 37: ! 38: # Generate all var**2 graphs ! 39: END { ! 40: if (allrangeset) for (i=1; i<=var; i++) { ! 41: rangeset[i]=1; rangelo[i]=allrangelo; rangehi[i]=allrangehi ! 42: } ! 43: if (frametext=="") { ! 44: wid=((6.5-spreadtext)/var)-spreadtext ! 45: frametext= "ht " wid " wid " wid ! 46: } ! 47: bottomrow=1; if (diagdown) bottomrow=var ! 48: for (row=1; row<=var; row++) { ! 49: for (col=1; col<=var; col++) { ! 50: # graph statement ! 51: if (col==1) { ! 52: place = "with .Frame.s at " fname row-1 col\ ! 53: ".Frame.n + (0," spreadtext ")" ! 54: if (diagdown) place = "with .Frame.n at " fname row-1 col\ ! 55: ".Frame.s - (0," spreadtext ")" ! 56: } else { ! 57: place = "with .Frame.w at " fname row col-1\ ! 58: ".Frame.e + (" spreadtext ",0)" ! 59: } ! 60: print "graph", fname row col, place ! 61: # frame statement ! 62: print " frame " frametext ! 63: # coord statement ! 64: s="" ! 65: if (rangeset[col]) s=s " x " rangelo[col] "," rangehi[col] ! 66: if (rangeset[row]) s=s " y " rangelo[row] "," rangehi[row] ! 67: if (wantlog[col]) s=s " log x" ! 68: if (wantlog[row]) s=s " log y" ! 69: if (wantalllog) s=s " log log" ! 70: if (s!="") print " coord" s ! 71: # ticks statements ! 72: print " ticks off" ! 73: if (col==1) print " ticks left " alltickstext, tickstext[row] ! 74: if (row==bottomrow) print " ticks bot " alltickstext, tickstext[col] ! 75: # copy file or print label ! 76: if (row==col) { ! 77: print " coord abs x 0,1 y 0,1" ! 78: print " " nametext[row] " at abs .5, .5" ! 79: if (symboltext!="") { ! 80: print " copy " filetext " thru @" ! 81: print " rowval=" fieldtext[row] ! 82: print " \"\" at rowval, rowval" ! 83: print " @" ! 84: } ! 85: } else { ! 86: print " rownum=" row "; colnum=" col ! 87: for (i=1; i<=graphcnt; i++) print " " graphtext[i] ! 88: print " copy " filetext " thru @" ! 89: print " rowval=" fieldtext[row] "; colval=" fieldtext[col] ! 90: for (i=1; i<=linecnt; i++) print " " linetext[i] ! 91: if (symboltext!="") { ! 92: print " " symboltext " at colval, rowval" ! 93: } ! 94: print " @" ! 95: } ! 96: } ! 97: } ! 98: print ".G2" ! 99: } ! 100: ' $*
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.