重ねがき時のルール: >,>>,-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)
説明
- -Sv ベクトルを描画する.
- 小文字の v では水平より反時計回りに角度を指定.
- 大文字の V では時計の0時方向より時計回りに角度を指定.
- 入力データは以下の4個のデータ組で指定する.
x座標 y座標 角度(度) 矢印の長さ
- 指定した座標と矢印の描画位置の関係により,t,b,h の区分がある.default は t である.
t: tail 指定座標を矢印の起点とする b: balance 指定座標を矢印の長さの中央とする h: head 指定座標を矢印の終点とする - t,b,h の代わりに s を指定する (-Svs) と始点と終点を入力データとする矢印を描ける.
始点x座標 始点y座標 終点x座標 終点y座標
- default では片矢印であるが,T,B,H など大文字を指定することにより両矢印となる.
- -Svt0.01/0.2/0.1 のように -Svt に続く数値により,矢印の形状を指定できる.
- 矢印の形状は,「arrowwidth/headlength/headwidth」の順に指定する.
- 矢印形状データの default は「0.075cm/0.3cm/0.25cm」である.
上の図を描画するバッチファイルは下に示すとおり.
set fig=fig_arrow1.eps echo 0 0 90 4 | psxy -JX4/6 -R-2/2/-1/5 -Svt1/2/1 -W3 -P -K > %fig% echo 0.0 -0.3 0.5 | psxy -JX -R -Sp -Ex -W1 -P -K -O >> %fig% echo 0.5 4.3 0.5 | psxy -JX -R -Sp -Ex -W1 -P -K -O >> %fig% echo 1.3 3.0 1.0 | psxy -JX -R -Sp -Ey -W1 -P -K -O >> %fig% echo 0.0 -0.6 12 0 0 CM arrowwidth | pstext -R -J -N -P -K -O >> %fig% echo 1.6 3.0 12 90 0 CM headlength | pstext -R -J -N -P -K -O >> %fig% echo 0.5 4.6 12 0 0 CM headwidth | pstext -R -J -N -P -O >> %fig% set fig=fig_arrow2.eps gmtset VECTOR_SHAPE=-3 echo -3 0 0 1 | psxy -JX8/3 -R-4/4/-2/1 -SVb -P -K > %fig% echo -3 -1 10 0 0 MC -3 | pstext -R -J -N -K -O >> %fig% gmtset VECTOR_SHAPE=-2 echo -2 0 0 1 | psxy -J -R -SVb -P -K -O >> %fig% echo -2 -1 10 0 0 MC -2 | pstext -R -J -N -K -O >> %fig% gmtset VECTOR_SHAPE=-1 echo -1 0 0 1 | psxy -J -R -SVb -P -K -O >> %fig% echo -1 -1 10 0 0 MC -1 | pstext -R -J -N -K -O >> %fig% gmtset VECTOR_SHAPE=0 echo 0 0 0 1 | psxy -J -R -SVb -P -K -O >> %fig% echo 0 -1 10 0 0 MC 0 | pstext -R -J -N -K -O >> %fig% gmtset VECTOR_SHAPE=1 echo 1 0 0 1 | psxy -J -R -SVb -P -K -O >> %fig% echo 1 -1 10 0 0 MC 1 | pstext -R -J -N -K -O >> %fig% gmtset VECTOR_SHAPE=2 echo 2 0 0 1 | psxy -J -R -SVb -P -K -O >> %fig% echo 2 -1 10 0 0 MC 2 | pstext -R -J -N -K -O >> %fig% gmtset VECTOR_SHAPE=3 echo 3 0 0 1 | psxy -JX -R-4/4/-2/1 -SVb -P -K -O >> %fig% echo 3 -1 10 0 0 MC 3 | pstext -R -J -N -K -O >> %fig% rem echo 0 -1.5 10 0 0 MC VECTOR_SHAPE | pstext -R -J -N -O >> %fig%
コマンド例
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 コマンドで定義しておく.
データ書式
x座標 y座標
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座標 y方向エラーバー長さ
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 にプロットの大きさは指定しない.プロットの大きさは入力データで指定される.
データ書式
x座標 y座標 z値(プロットの大きさ)
プロットの色を変える (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 値の値により,カラーパレットファイルで指定された色で円が着色される.
データ書式
x座標 y座標 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値(大きさに対応)
-m の指定 (psxy)
psxy コマンドの中で '-m' を指定することにより,複数の曲線を同一ファイルから読み取ることが可能になる. この時,入力ファイルの先頭行は '>' で始まり,データ組の区切りにも '>' を用いる.
データ例
2本の直行する同一線種の線を,同一ファイルから読み込む場合の入力データファイルの事例を下に示す.
> 0.000 -2600.000 0.000 2500.000 > -2600.000 0.000 3300.000 0.000
テキストの表示 (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) |
シンボル(ギリシャ文字),上付き,下付きなどのマークアップの文字列を下に示します.
Code | Effect |
---|---|
@~ | シンボルフォント(ギリシャ文字)の始まりと終わり |
@+ | 上付き文字の始まりと終わり |
@- | 下付き文字の始まりと終わり |
@# | 小さい大文字の始まりと終わり |
@_ | 下線の始まりと終わり |
@%fontno% | フォントの変更; @%% で元のフォントに戻す |
@:size: | フォントサイズの変更; @:: で元のフォントサイズに戻す |
@;color; | フォント色の変更; @;; で元の色に戻す |
@! | これに続く2文字を合成 |
@@ | @マークの表示 |
アルファベットとギリシャ文字の関係は下に示すとおりです.
minmax の利用
入力サンプルデータ
|
|
|
使い方
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列目の<最小値/最大値>」として出力される.