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

2008年 8月 1日 掲載, 2008年 8月 11日 修正(双曲線→放物線)


pscoast の次は,データをプロットするコマンド psxy を使ってみる.


まず,例によって psxy を単独で実行してみる.

$ psxy
psxy 4.2.1 - Plot lines, polygons, and symbols on maps

usage: psxy <infiles> -J<params> -R<west>/<east>/<south>/<north>[r] [-A[m|p]] [-B<params>] [-C<cpt>]
	[-D<dx>/<dy>] [-E[x|y|X|Y][n][cap][/[+|-]<pen>]] [-G<fill>] [-H[i][<nrec>]] [-K] [-L] [-M[<flag>]]
	[-N] [-O] [-P] [-S[<symbol>][<size>]] [-U[/<dx>/<dy>][<label>]] [-V] [-W[+|-][<pen>]] [-X[a|c|r]<x_shift>[u]]
	[-Y[a|c|r]<x_shift>[u]] [-c<ncopies>] [-:[i|o]] [-bi[s|S|d|D][<ncol>]] [-f[i|o]<colinfo>]

	<infiles> is one or more files.  If no, read standard input
…

使い方(usage)が標準エラー出力にずらずらっと出てくるのは pscoast と同じだが, pscoast より量が多い(pscoast:184行,psxy:246行).

最初にデータファイル(<infiles>)について書いてある. ファイルは複数指定できるようだ. ファイルの指定がない場合は,標準入力を読み込むとある.

今回は放物線を描いてみる. データファイルを awk で作ろう.

$ awk 'BEGIN{for(x=-10;x<=10;x+=0.1)print x, x*x}' > x2.txt

で -10≦x≦10,Δx=0.1 の放物線データファイル x2.txt ができる.

さっそく描画をトライしてみる.

$ psxy x2.txt
psxy: GMT SYNTAX ERROR:  Must specify -R option

範囲を指定する -Rオプションが必要とのエラーが出る.

$ psxy x2.txt -R-3/3/0/9
psxy: No projection selected

今度は投影法が選択されていないとのエラー. 普通にリニアな図を描きたいので -Jx を選択する. 縮尺は,とりあえず 1 でいいか.

$ psxy x2.txt -R-3/3/0/9 -Jx1
%!PS-Adobe-3.0 EPSF-3.0
%%BoundingBox: (atend)
%%Title: GMT v4.2.1 Document from psxy
%%Creator: GMT
%%For: kdo
%%DocumentNeededResources: font Helvetica
%%CreationDate: Tue Jul 29 20:58:03 2008
%%LanguageLevel: 1
%%DocumentData: Clean7Bit
…

標準出力に PostScript の内容がざーっと出てくる. これをリダイレクトでファイルに保存して, PostScriptファイルのビューワ gv で見てみよう.

$ psxy x2.txt -R-3/3/0/9 -Jx1 > x2.eps
$ gv x2.eps

放物線

ちゃんと放物線が描けた. でも,xy軸,目盛がないと,わかりづらいよなあ. というわけで,pscoast のとき同様 -Bオプションを使って, グリッド線と目盛を描く.

$ psxy x2.txt -R-3/3/0/9 -Jx1 -Bg1a1 > x2.eps

放物線(グリッド・目盛付き)

pscoast と違って,枠は旗竿(白黒)にならないようだ.

-Jオプションの詳しい設定は,man psbasemap で見ることができるのだが, -Jx に l(エル)をつけると対数スケールになると書いてあった. おもしろそうだから,やってみよう.

$ psxy x2.txt -R0.01/100/0.01/100 -Jx2l > x2.eps

放物線(両対数目盛)

-Jx1l では,図が小さいので 2倍に拡大(-Jx2l)した. ちゃんと傾き 2 の直線になっている.

man psbasemap によると, 対数スケールでの -Bオプションのグリッド・目盛間隔は,

となるようだ. グリッドは細かく 3 に,目盛は大ざっぱに 1 にしてみる.

$ psxy x2.txt -R0.01/100/0.01/100 -Jx2l -Bg3a1 > x2.eps

放物線(両対数目盛,グリッド・目盛付き)

かっこいい図ができた.

なんか,実験データを対数グラフにプロットしていた学生のころを思い出すなあ.


psxy は,まだまだつづきます.


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


(C) 2008 KDO