gnuplot / datafile (1)
not so FAQ
|
データファイルの数値のプロット (その1) 何かの計算や実験を行い,その結果をグラフにするのが, プロットできるデータのフォーマットは?2次元のデータ わざわざ書くまでも無い話しですが,一応ここにまとめておくこと # X Y 1.0 1.2 2.0 1.8 3.0 1.6 例えば2次元データの場合は,上の様にX座標とY座標を並べて書きます.X gnuplot> plot "test.dat" using 1:2 のように,usingを使ってgnuplotに描くカラムを教えます.usingを使わない Y座標に誤差棒を付ける方法は2つあります.1つは Y±Z のようにYを # X Y Z 1.0 1.2 0.2 2.0 1.8 0.3 3.0 1.6 0.2 ![]() # X Y Z1 Z2 1.0 1.2 0.8 1.5 2.0 1.8 0.3 2.3 3.0 1.6 1.0 2.1 ![]() それぞれをプロットするときは, gnuplot> plot "test.dat" using 1:2:3 with yerrorbars gnuplot> plot "test.dat" using 1:2:3:4 with yerrorbars の様に using の後の指定が変わるだけです. 表示するデータの形式によって,データカラム数やusingの指定が変わります.
3次元のデータ3次元データは(X,Y,Z)の組にして与えます.デフォルトでは,3次元空間に # X Y Z 0 0 0 0 1 1 0 2 4 0 3 9 0 4 16 0 5 25 1 0 1 1 1 2 1 2 5 1 3 10 1 4 17 2 0 4 2 1 5 2 2 8 2 3 13 3 0 9 3 1 10 3 2 13 gnuplot> splot "test3d.dat" using 1:2:3 with lines ![]() 次に,XYの数をそろえてみます. # X Y Z 0 0 0 0 1 1 0 2 4 0 3 9 0 4 16 0 5 25 1 0 1 1 1 2 1 2 5 1 3 10 1 4 17 1 5 26 2 0 4 2 1 5 2 2 8 2 3 13 2 4 20 2 5 29 3 0 9 3 1 10 3 2 13 3 3 18 3 4 25 3 5 34 ![]() この様に,縦横の格子が入ります.上の例では,各ブロックでのY座標が同 ![]() 各ブロックの点数が同じでも格子を描きたくない場合は,各ブロックの間に # X Y Z 0 0 0 0 1 1 0 2 4 0 3 9 0 4 16 0 5 25 1 0 1 1 1 2 1 2 5 1 3 10 1 4 17 1 5 26 2 0 4 2 1 5 2 2 8 2 3 13 2 4 20 2 5 29 3 0 9 3 1 10 3 2 13 3 3 18 3 4 25 3 5 34 ![]() matrix別の3次元データの与え方として,行列(matrix)で与える方法があります. 0 1 4 9 1 2 5 10 4 5 8 13 9 10 13 18 16 17 20 25 25 26 29 34 このデータをプロットするときは, using では無く, matrix gnuplot> set xtics ("100" 0, "200" 1, "300" 2) gnuplot> splot "test3d.dat" matrix with lines ![]() |