2008年 10月 1日 掲載
今回は描画の重ね合わせを扱う予定でしたが, ストーリーの都合上,次回の掲載といたします. 進行が行き当たりばったりで申し訳ありません.
今回は,データ点のプロットをしてみる. psxyコマンドに -Sオプションを付けることで, シンボルをプロットすることができるのだ. シンボルはいろいろ選べるのだが, 今回はシンプルに -Sc で円(Circle)をプロットしてみる.
まずは,データファイル xy.txt を作る.
$ awk 'BEGIN{for(x=-4;x<=4;x+=1)for(y=-4;y<=4;y+=1)print x, y}' > xy.txt
-4≦x≦4,-4≦y≦4 の範囲に,格子間隔 1 でデータ点をセットした. さっそく -Sc をつけて描画してみる.
$ psxy xy.txt -R-4/4/-4/4 -Jx1 -Ba1 -Sc > xy.eps psxy: Mismatch between actual (2) and expected (3) fields near line 0
エラーが出てしまった. 存在しているフィールド(2つ)と, 期待されるフィールド(3つ)が一致しない,とのことである.
描画には,x,y と,もうひとつ値が必要ということなのだが, 求められているのはシンボルのサイズである. シンボルのサイズを指定するには,次の 2通りの方法がある.
まず,最初の方法で描画してみる.-Sc に,円のサイズ(直径) 0.2 を追記する.
$ psxy xy.txt -R-4/4/-4/4 -Jx1 -Ba1 -Sc0.2 > xy.eps
期待される図ができた.
2番目の方法でも描画してみる. 3番目のフィールドに,円のサイズを 0.2 に指定した xy_2.txt を作って,描画する.
$ awk 'BEGIN{for(x=-4;x<=4;x+=1)for(y=-4;y<=4;y+=1)print x, y, 0.2}' > xy_2.txt $ psxy xy_2.txt -R-4/4/-4/4 -Jx1 -Ba1 -Sc > xy_2.eps
同じ図ができた. まあ,この例では,最初のやり方(-Sc0.2)で作図するのがふつうだろう.
データファイルでシンボルサイズを指定する 2番目の方法は, xy点の値を表現するのに使える.例えば地震のマグニチュード分布とか.
例として,2次元のガウス関数を図化してみる. まずはデータ作り.
$ awk 'BEGIN{for(x=-4;x<=4;x+=1)for(y=-4;y<=4;y+=1)print x, y, exp(-(x*x+y*y)/8)}' > xyz.txt
図化するとこうなる.
$ psxy xyz.txt -R-4/4/-4/4 -Jx1 -Ba1 -Sc > xyz.eps
ここで,ちょっと疑問がわいた. データファイルの第3フィールドでサイズを指定し, -Scオプションにもサイズを指定するとどうなるのだろう. ためしてみた.
$ psxy xyz.txt -R-4/4/-4/4 -Jx1 -Ba1 -Sc0.2 > xyz_2.eps
-Scオプションのサイズが優先されるようだ.
3つ以上のフィールドのあるデータファイルのデータ点をプロットするのに, わざわざフィールドが 2つだけのファイルを作りなおさなくてもよい,ということになる.
次回は,ちゃんと描画の重ね合わせをやります.
[ KDOホームにもどる ] [ いちからはじめる GMT インデックスにもどる ]
(C) 2008 KDO