2010年 1月 2日 掲載
psxy -Sv のつづきです.
前回,psxy -Sv でベクトルを描いてみたが, どうも「やじり」が大きくて不格好のような気がする. で,このベクトルの格好だが, -Svオプションに,arrowwidth/headlength/headwidth (矢柄の幅/やじりの長さ/やじりの幅)を指定することで, 好みの形に変更することができる.
やってみよう.デフォルトは「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 arg.txt -Jx1 -R-4/4/-4/4 -Sv0.1/0.4/0.2 > vector.eps
ベクトルの描画位置を変更することもできる. デフォルトでは,座標(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
この座標(x, y)をベクトルの真ん中にしたり,ベクトルの先端にすることもできる.
座標(x, y)をベクトルの真ん中にするには,-Svb とする(b は balance point の b).
$ psxy arg3.txt -Jx1 -R-4/4/-4/4 -Ba2g2 -Svb > vector.eps
座標(x, y)をベクトルの先端にするには,-Svh とする(h は head の h).
$ psxy arg3.txt -Jx1 -R-4/4/-4/4 -Ba2g2 -Svh > vector.eps
-Svt とすると,座標(x, y)がベクトルの後端になるが(t は tail の t), これがデフォルトである.
$ psxy arg3.txt -Jx1 -R-4/4/-4/4 -Ba2g2 -Svt > vector.eps
この描画位置指定オプション b, h, t を, 大文字の B, H, T に書き換えると,ベクトルが両矢印になる. -SvB の例を見てみよう.
$ psxy arg3.txt -Jx1 -R-4/4/-4/4 -Ba2g2 -SvB > vector.eps
ベクトルの先端を,座標(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
[ KDOホームにもどる ] [ いちからはじめる GMT インデックスにもどる ]
(C) 2010 KDO