GMT ver5 の pslegend

凡例の描き方を少し系統立てて試してみました。

f:id:S_E_Hyphen:20180312173535j:plain

凡例の位置および大きさは-Dオプションで指定します。

赤枠の凡例のように -Dx1c/16cで左から1cm下から16cmを基準点とし、+jTLにより基準点との位置関係(凡例の左上を基準点とする)を指定します。+w10c/2cで幅10cm高さ2cmが指定できます。

凡例の内容は外部テキストファイルで指定します。同じく赤枠の凡例について述べるならば、

N 1
# T はText
L - - BC 見出し(既定値)
T 左から1cm下から16cm幅10cm高さ2cm
G 0.5c
T 枠線3pt,red

が、それにあたります。Lコマンドはラベル、Tコマンドはテキストです。Lの方がセンタリングなどができるため便利そうです。

黒枠の凡例では、見出しのフォントやテキストの文字色を変更してみました。変更しない場合、

gmt gmtset FONT_TITLE 16p,GothicBBB-Medium-UniJIS-UTF8-H
gmt gmtset FONT_LABEL 12p,GothicBBB-Medium-UniJIS-UTF8-H
gmt gmtset FONT_ANNOT_PRIMARY 10p,GothicBBB-Medium-UniJIS-UTF8-H

などで指定したフォントが使用されます。

 

緑枠の凡例では、線種のバリエーションを示しました。

Sコマンドはシンボルを表します。

 S 0.5c - 1.0c 0/0/0 1p,black 2c 1ポイント黒線

は、左から0.5cmの位置に-(線分)シンボルを1.0cmの大きさで配置する。

塗色は0/0/0 線種は1pで色は黒

2cm間隔を空けて「1ポイント黒線」と文字を入れる

という意味です。

少し気になったのは下から3つです。左から0.1cmの位置にシンボルを配置せよ、と指定しているにも関わらず左にはみ出してしまっています。なおかつシンボルの大きさ(1.0cm,0.5cm,0.3cm)次第で、はみ出具合が異なっています。dx1とsizeについては、試行錯誤が必要になりそうです。

 

#!/bin/bash
psfile=legend_test.ps
gmt gmtset FONT_TITLE 16p,GothicBBB-Medium-UniJIS-UTF8-H
gmt gmtset FONT_LABEL 12p,GothicBBB-Medium-UniJIS-UTF8-H
gmt gmtset FONT_ANNOT_PRIMARY 0.35c,GothicBBB-Medium-UniJIS-UTF8-H

# 方眼紙の描画
gmt psbasemap -JX25c/18c -R0/25/0/18 -BnSeW \
 -Bxa5g1+l"(cm)" -Bya5g1+l"(cm)" -K > $psfile

# 左上の赤い凡例
cat << + |\
gmt pslegend -R -J -Dx1c/16c+w10c/2c+jTL \
   -F+p3p,#FF0000+gwhite -O -K >> $psfile
N 1
# T はText
L - - BC 見出し(既定値)
T 左から1cm下から16cm幅10cm高さ2cm
G 0.5c
T 枠線3pt,red
+

# 右上の黒い凡例
cat << + |\
gmt pslegend -R -J -Dx13c/15c+w10c/2c+jTL \
  -F+p1p,#000000+g#FFFFFF -O -K >> $psfile
N 1
L  10p Ryumin-Light-UniJIS-UTF8-H BC 見出し(10pt)
C 0/255/0
T 左から13cm下から15cm幅10cm高さ2cm
G 0.5c
T 枠線1pt 黒
T 文字色 緑
+

# 右下の緑の凡例
cat << + |\
gmt pslegend -R -J -Dx15c/12c+w6c/10c+jTL \
  -F+p2p,#00DD00+g#FFFFFF -O -K >> $psfile
N 1
L - - BC 線種
D 0.5p
G 0.578c
S 0.5c - 1.0c 0/0/0 1p,black 2c 1ポイント黒線
G 0.65c
S 0.5c - 1.0c 0/0/0 1p,#FF00FF 2c 1ポイントマゼンタ
G 0.65c
S 0.5c - 1.0c 0/0/0 1p,black,- 2c 破線
G 0.65c
S 0.5c - 1.0c 0/0/0 1p,black,. 2c 点線
G 0.65c
S 0.5c - 1.0c 0/0/0 1p,#000000,-..- 2c 二点鎖線
G 0.65c
S 0.8c - 1.0c 0/0/0 2p,black 2c 少し右寄り2ポイント
G 0.65c
S 0.1c - 1.0c 0/0/0 1p,black 2c dx1=0.1c size=1.0c
G 0.65c
S 0.1c - 0.5c 0/0/0 1p,black 2c dx1=0.1c size=0.5c
G 0.65c
S 0.1c - 0.3c 0/0/0 1p,black 2c dx1=0.1c size=0.3c
G 0.65c
+

# 左下の青い凡例
cat << + |\
gmt pslegend -R -J -Dx1c/10c+w3c/8c+jTL \
  -F+p3p,#0000FF -O >> $psfile
N 1
# SはSymbol
# 枠からのオフセット 記号 記号のサイズ 記号の塗りつぶし 記号の線 記号と文字の間隔 文字
S 0.1c a 0.1c 0/0/0 2p,black 1c 星型(a)
G 0.65c
S 0.2c c 0.2c 255/0/0 2p,black 1c 円(c)
G 0.65c
S 0.3c d 0.3c 0/255/0 2p,#888888 1c ひし形(d)
G 0.65c
S 0.4c - 0.3c 0/0/0 2p,red 1c 直線(-)
G 0.65c
S 0.5c x 0.3c 0/0/0 2p,#00FF00 1c 十字(x)
G 0.65c
S 0.6c h 0.3c 0/0/255 1p,#FF0000 1c 六角形(h)
G 0.65c
S 0.5c v0.2c+a60+bt+ea 0.5c 128/0/0 1p,#FF0000 1c 矢印(v)
G 0.65c
S 0.4c s 0.3c 255/0/255 1p,#FF00FF 1c 四角(s)
G 0.65c
+