いちからはじめる GMT その69 - pshistogram

2012年 8月 1日 掲載


今回はちょっと毛色の変わったコマンド,pshistogram を紹介する.


pshistogram は,1次元のデータを解析してヒストグラムを描画するコマンドである.

まずは,解析に使うデータと用意しよう. その34 でも使った Box-Muller法で,5000個の正規乱数列を作成する.

$ awk 'BEGIN{for(i=0;i<2500;i++){x1=rand();x2=rand();if(x1!=0)print sqrt(-2*log(x1))*cos(2*3.1415*x2);print sqrt(-2*log(x1))*sin(2*3.1415*x2)}}' > rand.txt

で,できあがったデータ rand.txt を pshistogramコマンドに与えてみると,

$ pshistogram rand.txt > histogram.eps
pshistogram: GMT SYNTAX ERROR -W option:  bin width must be nonzero
pshistogram: Must specify either fill (-G) or lookup colors (-C), outline pen attributes (-L), or both.

エラーが 2つ出た.

1つ目のエラーには,度数の幅(bin width)を -Wオプションで指定せよ,とある.

2つ目のエラーは,塗りつぶすか(-G),色を変えるのか(-C),アウトラインのペンをどうするか(-L)を指定しなくてはならない,とのことである.

では,度数の幅は 0.2 に,グラフの描画はアウトラインで行うことにして,どういう図ができるかためしてみよう.

$ pshistogram rand.txt -W0.2 -L > histogram.eps

ヒストグラム

図の縮尺,描画範囲,目盛の間隔などは自動で決めてくれるようだ. それぞれ,どういう数値で描画されているかを知るためには,-Vオプションをつけて実行すればよい.

$ pshistogram rand.txt -W0.2 -L -V > histogram.eps
pshistogram: 5000 points read
pshistogram: WARNING: 5000 multiple modes found
pshistogram: Extreme values of the data :	-4.10239	3.854
pshistogram: Locations: L2, L1, LMS; Scales: L2, L1, LMS	-0.00255528063511	0.0103926	0.0965825	1.00158330536	1.01580398304	1.0048343739

pshistogram: min/max values are :	-4.10239	3.854	0	423
pshistogram: Use w/e/s/n = -5/4/0/500 and x-tick/y-tick = 1/100

グラフの描画には,最後の 2行の情報が参考になる. min/max values の値を参考に,縮尺は -Jx1/0.01 とし, 範囲を 0 を中心に左右対称になるよう -R-5/5/0/500 にし, 目盛の間隔は,x-tick/y-tick の値をそのまま使って -Ba1/a100 としてみる.

$ pshistogram rand.txt -Jx1/0.01 -R-5/5/0/500 -Ba1/a100 -W0.2 -L > histogram.eps

ヒストグラム

-Gオプションをためしてみよう.棒グラフを gray で塗りつぶしてみる.

$ pshistogram rand.txt -Jx1/0.01 -R-5/5/0/500 -Ba1/a100 -W0.2 -L -Ggray > histogram.eps

ヒストグラム

pshistogramコマンドでは,-Qオプションを使うと累積ヒストグラムが描画される. まずは,自動設定で描いてみよう.

$ pshistogram rand.txt -W0.2 -L -Q -V > histogram.eps
pshistogram: 5000 points read
pshistogram: WARNING: 5000 multiple modes found
pshistogram: Extreme values of the data :	-4.10239	3.854
pshistogram: Locations: L2, L1, LMS; Scales: L2, L1, LMS	-0.00255528063511	0.0103926	0.0965825	1.00158330536	1.01580398304	1.0048343739

pshistogram: min/max values are :	-4.10239	3.854	0	5000
pshistogram: Use w/e/s/n = -5/4/0/5000 and x-tick/y-tick = 1/1000

ヒストグラム

最終的には,-Vオプションの出力を参考に, -J,-R,-Bオプションの値を決めて,好みの図に仕上げよう.

$ pshistogram rand.txt -Jx1/0.001 -R-5/5/0/5000 -Ba1/a1000 -W0.2 -L -Q > histogram.eps

ヒストグラム


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


(C) 2012 KDO