2011年6月14日

[心得]gnuplot in action -- chapter 3

第三章作者介紹了一些data file操作跟呈現的方式,以其一些其他的內容
對於一些大型資料檔案,資料是不斷匯入,不同的資料之間可以用一行空白隔開,這對gnuplot是有意義的,gnuplot用index來表示"段落",段落的編號由0開始,如果要畫第二個段落可以用
plot "data_file" index 1 using 1:2 w linespoints
index選項有index {int:start}[:{int:end}][:{int:step}]
表示也可同時繪製一組幾段的資料成為一個圖形
 plot "data_file" index 2:5:2
如果data file是以每一列一筆資料來說,gnuplot也可以繪製,使用every整合指令,對於每一列分別是x value,接著下一列是y value的交錯
plot "data_file" every 2 using 1:2 with lines
類似index,every選項有every {int:step}[::{int:start}[::{int:end}]]
對於一些需要fitting data的function,有很多smothing,觀察效果可以使用
plot "data_file" u 1:2 t "datas" w lp, "" u 1:2 t "bezier" smooth bezier, "" u 1:2 t "cspoints" smooth csplines
smooth的選項有
bezier, sbezier, csplines, acsplines
另外可以即時的使用同一筆資料做處理,以$(前字號)加上行的名稱當指示,比說把y value開根號
plot "data_file" using 1:(sqrt($2)) with lines

這裡我略過了一堆有關於數學函數的處理,有興趣的人自行去看書吧,另外繪製函數的時候有個重要的參數就是sample rate(借用訊號處理的名詞),使用類似以下的方式來處理
set sample 300
有時候座標取log之後可以讓本來不明顯的曲線關係變成線性關係
set logscale
set logscale x
set logscale y
第一列為對x, y同時取log,第二三列分別對x軸跟y軸取lgo

沒有留言: