いちからはじめる GMT その27 - psxy -Sv

2010年 1月 2日 掲載


psxy -Sv のつづきです.


前回,psxy -Sv でベクトルを描いてみたが, どうも「やじり」が大きくて不格好のような気がする. で,このベクトルの格好だが, -Svオプションに,arrowwidth/headlength/headwidth (矢柄の幅/やじりの長さ/やじりの幅)を指定することで, 好みの形に変更することができる.

psxy -Svオプション

やってみよう.デフォルトは「0.075c/0.3c/0.25c」である.

$ awk 'BEGIN{for(x=0;x<360;x+=30) print 2*cos(x*3.1415/180), 2*sin(x*3.1415/180), x, 1}' > arg.txt 
$ psxy arg.txt -Jx1 -R-4/4/-4/4 -Sv > vector.eps

psxy -Sv

これを,スリムなやじりに変更する.

$ psxy arg.txt -Jx1 -R-4/4/-4/4 -Sv0.1/0.4/0.2 > vector.eps

psxy -Sv0.1/0.4/0.2


ベクトルの描画位置を変更することもできる. デフォルトでは,座標(x, y)からベクトルが描かれる.

$ awk 'BEGIN{for(x=0;x<90;x+=30) print 0, 0, x, 3}' > arg3.txt
$ cat arg3.txt
0 0 0 3
0 0 30 3
0 0 60 3
$ psxy arg3.txt -Jx1 -R-4/4/-4/4 -Ba2g2 -Sv > vector.eps

psxy -Sv

この座標(x, y)をベクトルの真ん中にしたり,ベクトルの先端にすることもできる.

座標(x, y)をベクトルの真ん中にするには,-Svb とする(b は balance point の b).

$ psxy arg3.txt -Jx1 -R-4/4/-4/4 -Ba2g2 -Svb > vector.eps

psxy -Svb

座標(x, y)をベクトルの先端にするには,-Svh とする(h は head の h).

$ psxy arg3.txt -Jx1 -R-4/4/-4/4 -Ba2g2 -Svh > vector.eps

psxy -Svh

-Svt とすると,座標(x, y)がベクトルの後端になるが(t は tail の t), これがデフォルトである.

$ psxy arg3.txt -Jx1 -R-4/4/-4/4 -Ba2g2 -Svt > vector.eps

psxy -Svt

この描画位置指定オプション b, h, t を, 大文字の B, H, T に書き換えると,ベクトルが両矢印になる. -SvB の例を見てみよう.

$ psxy arg3.txt -Jx1 -R-4/4/-4/4 -Ba2g2 -SvB > vector.eps

psxy -SvB


ベクトルの先端を,座標(x, y)からの角度と長さではなく, xy座標値で指定することもできる オプションを -Svs とすると,データファイルの 3,4カラムが, 角度,長さではなく,ベクトル先端の xy座標値としてあつかわれる.

$ awk 'BEGIN{for(x=1;x<=2;x++)for(y=1;y<=2;y++) print 0,0,x,y}' > xy.txt
$ cat xy.txt
0 0 1 1
0 0 1 2
0 0 2 1
0 0 2 2
$ psxy xy.txt -Jx1 -R-4/4/-4/4 -Ba2g2 -Svs > vector.eps

psxy -Svs


[ KDOホームにもどる ] [ いちからはじめる GMT インデックスにもどる ]


(C) 2010 KDO