重ねがき時のルール: >,>>,-K,-O
出力画像がうまく作成できない場合の原因は,この指定がルールどおり行われていない場合が多いので注意!
- コマンド1行目の出力ファイル指定は,> を用いる
- コマンド2行目以降の出力ファイル指定は,>> を用いる
- コマンド1行目には -K を指定
- コマンド2行目以降には -K,-O を指定
- コマンド最終行には -O を指定
set fig=fig_out.eps
psbasemap ........ -K > %fig%
psxy ............. -K -O >> %fig%
psxy ............. -K -O >> %fig%
・・・・・
・・・・・
pstext ............. -K -O >> %fig%
pstext ............. -O >> %fig%
|
GMT実行用バッチファイルをプログラムのdoループなどで機械的に作成・出力する場合,全てに「-K -O >>」をつけたい場合もあります.
このような場合は,最終行を以下のようにすることで処理できます.これは原点に点を打つコマンドで,この程度であればグラフの中で邪魔にはならないでしょう.好みにもよりますが.
echo 0 0 | psxy -R -J -Sp -O >> %fig%
|
-P の指定
-P を指定しないと,A4 横の紙に印刷されたイメージとなる.
-P を指定しない場合,gsview で確認する場合は問題ないが,png にして貼り付けようとする場合,90 度回転させる必要があることに注意!
-N の指定
-N を指定することにより,グラフの領域外にもプロットやテキストを描画できるようになる.
これを指定することにより,グラフ欄外にテキストの注書をいれたりできる.
ただし,データがグラフ領域外にあっても描画されてしまうので,各コマンド行で使い分けたほうがよい.
-H の指定
-H により入力ファイルから読み飛ばす行数を指定できる.デフォルトは1行.
gmtdefaults で N_HEADER_RECS=1 とされている.
-H を指定しなければ,入力ファイルの1行目よりデータを読み込む.
-: の指定
-: により入力ファイルから読み込む (x,y) の順番を逆転させる.
デフォルトでは,(経度,緯度) あるいは (x,y) の順に読み込むが,-: を指定することにより,(緯度,経度) あるいは (y,x) の順に読み込む.
-X,-Y の指定
-X あるいは -Y により原点を移動させる.
デフォルトは,gmtdefaults の X_ORIGIN および Y_ORIGIN で指定されており,いずれも 2.5cm.
複数のグラフを 1 ページに表示したり,ラベルが紙の端で切れてしまう場合などに使用する.
-U の指定
-U はタイムスタンプをグラフの左下に表示する.-Utext のように -U に続いてテキストを指定することにより,タイムスタンプに続いて指定したテキストを表示する.
-W で線種を指定する (psxy)
コマンド例
gawk "BEGIN{FS=\",\"}{if(568<=NR&&NR<=610)print $2,$5*1000}" %inp_1% | psxy -R -J -B -W5t15_5_5_5:0 -P -O -K >> %fig_out%
gawk "BEGIN{FS=\",\"}{if(568<=NR&&NR<=610)print $2,$5*1000}" %inp_2% | psxy -R -J -B -W5t10_10:0 -P -O -K >> %fig_out%
gawk "BEGIN{FS=\",\"}{if(568<=NR&&NR<=610)print $2,$5*1000}" %inp_3% | psxy -R -J -B -W5t5_5:0 -P -O -K >> %fig_out%
gawk "BEGIN{FS=\",\"}{if(568<=NR&&NR<=610)print $2,$5*1000}" %inp_4% | psxy -R -J -B -W5 -P -O -K >> %fig_out%
|
-W で線種を指定する.指定は面倒だが表示の自由度は高いし便利.
この事例では,入力データファイルは変数 inp_1 などとして定義し,gawkで整形後 psxy に送り込んでいる.
-W5 | 太さ5の実線 |
-W5t10_10:0 | 太さ5の長い破線 |
-W5t5_5:0 | 太さ5の短い破線 |
-W5t15_5_5_5:0 | 太さ5の一点鎖線 |
以下のようにしても,簡単に線種を指定できる.
-W5,- | 太さ5の長い破線 |
-W5,. | 太さ5の短い破線(点線) |
-W5,-. | 太さ5の一点鎖線 |
-SvS で実線と矢印を表示する (psxy)
コマンド例
gmtset VECTOR_SHAPE 1
echo 2.50 1.7 2.50 -0.6 | psxy -R -J -SvS0.005/0.0/0.0 -G0 -O -K >> %fig_out%
echo -2.50 -0.5 2.50 -0.5 | psxy -R -J -SvS0.005/0.2/0.1 -G0 -O -K >> %fig_out%
|
-SvS で矢印のない実線と矢印を指定する.説明図作成時に便利.
この事例では,入力データファイルは用いず,batch ファイル内で echo を用いて psxy に送り込むデータをセットしている.
- gmtset VECTOR_SHAPE 1 : これで矢印の基本形状をデフォルトから変更指定
- -SvS ベクトルは始点と終点で指定,両矢印とする
- 矢印形状は「arrowwidth/headlength/headwidth」で指定
- 0.005/0.0/0.0 線の太さ0.005cmの線(矢印無し)
- 0.005/0.2/0.1 線の太さ0.005cm,矢印頭の長さ0.2cm,矢印頭の幅0.1cm
- -Svs とすれば片矢印となる
通常のプロットのデータ書式 (psxy)
コマンド例
set inp_dat=inp_dat1.txt
set fig_out=fig_out1.eps
..........
psxy %inp_dat% -R -JX -SC0.2 -G0 -N -O >> %fig_out%
|
-SC0.2 により,0.2cm の円をプロットする.
入力ファイル名 inp_dat1.txt と出力画像ファイル名 fig_out1.eps は,あらかじめ変数として set コマンドで定義しておく.
データ書式
y方向エラーバー表示 (psxy)
コマンド例
set inp_dat=inp_dat1.txt
set fig_out=fig_out1.eps
..........
psxy %inp_dat% -R -JX -SC0.2 -G0 -Ey -N -O >> %fig_out%
|
-SC0.2 により,0.2cm の円をプロットし,-Ey でエラーバーを表示する.
エラーバーの長さは片側長さに対応.
データ書式
x・y方向エラーバー表示 (psxy)
コマンド例
set inp_dat=inp_dat1.txt
set fig_out=fig_out1.eps
..........
psxy %inp_dat% -R -JX -SC0.2 -G0 -Ex -Ey -N -O >> %fig_out%
|
-SC0.2 により,0.2cm の円をプロットし,-Ex および -Ey で x 方向と y 方向のエラーバーを表示する.
データ書式
x座標 y座標 x方向エラーバー長さ y方向エラーバー長さ
|
プロットの大きさを変える (psxy)
コマンド例
set inp_dat=inp_dat1.txt
set fig_out=fig_out1.eps
..........
psxy %inp_dat% -R -JX -SC -G255 -W3 -N -O >> %fig_out%
|
-SC にプロットの大きさは指定しない.プロットの大きさは入力データで指定されたとなる.
データ書式
プロットの色を変える (psxy)
コマンド例
set inp_dat=inp_dat1.txt
set fig_out=fig_out1.eps
..........
psxy %inp_dat% -R -JX -SC0.5 -Cinp_wg_34cpt.cpt -N -O >> %fig_out%
|
-SC0.5 により,0.5cm の円の描画を指定.-C でカラーパレットファイルを指定.
入力データ中の z 値の値により,カラーパレットファイルで指定された色で円が着色される.
データ書式
カラーパレットファイルの基本書式
z1値 R1 G1 B1 z2値 R2 G2 B2
0 0 0 0 20 0 0 0
20 255 0 0 40 255 0 0
40 0 255 0 60 0 255 0
60 0 0 255 80 0 0 255
80 255 0 255 100 255 0 255
|
RGBでの基本色表示
Color | R | G | B |
Black | 0 | 0 | 0 |
Red | 255 | 0 | 0 |
Lime | 0 | 255 | 0 |
Blue | 0 | 0 | 255 |
Yellow | 255 | 255 | 0 |
Fuchsia | 255 | 0 | 255 |
Aqua | 0 | 255 | 255 |
White | 255 | 255 | 255 |
プロットの色と大きさを変える (psxy)
コマンド例
set inp_dat=inp_dat1.txt
set fig_out=fig_out1.eps
..........
psxy %inp_dat% -R -JX -SC -Cinp_wg_34cpt.cpt -N -O >> %fig_out%
|
-SC でプロットの大きさを指定せず,-C でカラーパレットファイルを指定.
プロットの色と大きさは,入力ファイルで指定されたものとなる.
データ書式
x座標 y座標 za値(色区分に対応) zb値(大きさに対応)
|
テキストの表示 (pstext)
コマンド例
echo 0.02 0.85 8 0 0 TL text | pstext -R0/1/0/1 -JX8/4 -N -K -O >> %fig_out%
|
コマンド pstext を用いてテキストを表示する.指定は面倒だが表示の自由度は高いし便利.
フォントNo:0 は Helvetica.
この事例では,入力データファイルは用いず,batch ファイル内で echo を用いて pstext に送り込むデータをセットしている.
データ書式
x座標 y座標 フォントサイズ 回転角(度) フォントNo 位置関係 テキスト
|
位置関係は以下のアルファベットの組み合わせを指定します.
TL(top-left) | TC(top-center) | TR(top-right) |
ML(middle-left) | MC(middle-center) | MR(middle-right) |
BL(bottom-left) | BC(bottom-center) | BR(bottom-right) |
minmax の利用
入力サンプルデータ
test1.txt |
(1列データ |
0.1 |
0.2 |
0.3 |
0.4 |
0.5 |
|
test2.txt |
(2列データ |
1 10 |
2 20 |
3 30 |
4 40 |
5 50 |
|
test5.txt |
(5列データ |
1 10 100 1000 10000 |
2 20 200 2000 20000 |
3 30 300 3000 30000 |
4 40 400 4000 40000 |
5 50 500 5000 50000 |
|
使い方
minmax test1.txt > out.txt
minmax test2.txt >> out.txt
minmax test5.txt >> out.txt
|
test1.txt, test2.txt, test5.txt は入力ファイル,out.txtは出力ファイル
出力事例
test1.txt: N = 5 <0.1/0.5>
test2.txt: N = 5 <1/5> <10/50>
test5.txt: N = 5 <1/5> <10/50> <100/500> <1000/5000> <10000/50000>
|
結果は,「入力ファイル名,データ数,1列目の<最小値/最大値>,・・・,5列目の<最小値/最大値>」として出力される.