plot lastx=0.0,lasty=0.0,integ=0.0,integ_init=0.0, “sample.txt” u 1:2 w l , “” u 1:(dx=$1-lastx,integ = ($0==0 ? integ_init : integ+dx*($2+lasty)*0.5), lastx=$1, lasty=$2, integ) w l
「Gnuplot」カテゴリーアーカイブ
角度の記号(°)
x11だと \260 で書けるがepsでは見えない。
eps用には{/Symbol \260}
データ解析(bash&gnuplot)
磁場を振って測った電流のデータを、素子の劣化を考慮して直線補正するためのスクリプト。
まずは、カンマをスペースに置換し、200行毎に空行を2行挟む(gnuplotのindexでデータを分けるため)。
直線によるフィッティングの結果からデータを補正するのだが、
普通に$1、$2とやろうとするとbashの変数と混同するため、
あらかじめ$1を文字列と解釈してくれる変数aを定義しておく。
最後に、補正したデータをテーブルにダンプして終わり。
#!/bin/bash if [ $# -ne 1 ]; then echo "please add the filename!" exit 1 fi tail -701 $1 | sed -e 's/,/ /g' | sed -e '201~200i \\n' > test.txt a=\$1 b=\$2 gnuplot -e " f(x)=a*x+b ; g(x)=c*x+d; h(x)=e*x+f; a=1;b=1;c=1;d=1;e=1;f=1; fit f(x) 'test.txt' i 0 u 1:2 via a,b; fit g(x) 'test.txt' i 1 u 1:2 via c,d; fit h(x) 'test.txt' i 2 u 1:2 via e,f; unset key; set xlabel 'Magnet Voltage (V)'; set ylabel 'Current (A)'; plot 'test.txt' i 0 u 1:($b-$a*a) w l, '' i 1 u 1:($b-$a*c) w l, '' i 2 u 1:($b-$a*e) w l; pause -1 ; set table 'test.table'; replot; "
カンマ区切りファイルの読み込み
set datafile separator ‘,’
で読めるようになる。
データの保存
set table “sample.table”
のちに
plot
すると、プロットすべきデータがsample.tableというファイルに保存される。
2階微分したい時、1階微分を一旦保存しておくのに便利かも。