2016年8月9日火曜日

psxyの範囲の自動設定

GMTを使うときれいな図が描ける。psxyとか。

ただ、軸の範囲を自分で決めなきゃいけなかったり、ちょっとめんどくさい。

GMT5では、gmtinfoコマンドによりファイルの最大値や最小値を求めることができる。


例えば、以下の data.txt があった場合
0 0
1 1
2 4
3 5
4 4
5 1
6 0


> gmtinfo data.txt -I1/1
-R0/6/0/5

> gmtinfo data.txt -I4/4
-R0/8/0/8


という感じで、範囲を出してくれる。

"-I" オプションは、区切り間隔を示していて、データの範囲が入る区切りの最小の倍数を返すようになっている。

つまり

range=`gmtinfo data.txt -I1/1`
psxy data.txt -JX8/5 -R$range -BnSeW -Bxya1 -P > out.ps


range=`gmtinfo data.txt -I4/4`
psxy data.txt -JX8/5 -R$range -BnSeW -Bxya1 -P > out.ps

という感じになる。



また、プロットで使う目的以外にも最大値と最小値を簡単に調べられるので便利。

例えば、2列目の最小値と最大値は
> gmtinfo data.txt -i1 -o0 -C
0

> gmtinfo data.txt -i1 -o1 -C 
5

となる。

"-i" オプションは、データファイルの列を示す(0から始まる)。

"-o"オプションは、0が最小値、1が最大値を表す。
















0 件のコメント:

コメントを投稿