〔前の画面〕
〔クリックポイント〕 〔最新の一覧〕
〔全て読んだことにする〕〔全て読んだことにして終了〕 〔終了〕
2833 re(4):splot で複数ファイルのデータをグリッドデータとして扱う方法 |
2014/8/21(木)12:29 - 松田七美男 - 42-148-162-150.rev.home.ne.jp - 1766 hit(s)
gnuplot自身の改良ができるといいですね.
プログラミングに詳しい方とお見受けしますので,今更ですが,
竹の先生のおっしゃる通りに,ファイルを結合して呼び出す
splot '<cat *.dat' w pm3d
が現在のgnuplotの考え方に従ったものと思います.
データファイルが通常の <x> <y> <z> の並び+末尾空行1であれば,
問題ないのですが,<z> だけの並び+末尾空行1であれば,
データ数をsmaxとして
splot "<cat *.dat' u ($0/smax):(floor($0)%smax):1 w pm3d
により,直角直交のグリッド座標<x><y>を補うことができます.
tableを用いてデータを無理やり作成したサンプルを示します.
gnuplot以外に必要なコマンドはcat(MS-Windowsならcopy)だけです.
また,データファイル末尾に空行を1行付けるように変更する必要が
あるかもしれません.
### begin make data
f(x) = x**2*exp(-0.1*x**2) + 10*exp(-100*(x-5)**2)
smax = 500
imax = 20
set samples smax
do for [i=1:imax] {
fname = sprintf("%03d.tbl",i)
set table fname
plot [0:10] f(x)*(1+sin(i*pi/10.0)*0.5)
}
unset table
set table "tmp.tbl"
i=1
do for [i=1:imax] {
cmd = sprintf("< head -%d %03d.tbl |tail -%d |tee tmpdat",smax+4,i,smax)
plot cmd
cmd = sprintf("< gawk '{print $2, $3, %d} END{print $6}' tmpdat |tee %03d.dat",i,i)
plot cmd
}
unset table
set term wxt
### end make data: no importance
set nokey
set xyplane 0 # replace for 'set ticslevel 0'
set palette rgbformulae 22,13,-31
splot '< cat *.dat' u ($0/smax):(floor($0) % smax):1 w pm3d
pause -1
〔ツリー構成〕
┣【2833】 re(4):splot で複数ファイルのデータをグリッドデータとして扱う方法 2014/8/21(木)12:29 松田七美男 (1393) |
〔前の画面〕
〔クリックポイント〕 〔最新の一覧〕
〔全て読んだことにする〕〔全て読んだことにして終了〕 〔終了〕
※ 『クリックポイント』とは一覧上から読み始めた地点を指し、ツリー上の記事を巡回しても、その位置に戻ることができます.