スポンサーリンク
スポンサーリンク

gmt legendの使い方

スポンサーリンク
スポンサーリンク
スポンサーリンク
スポンサーリンク
legend — GMT 6.6.0 documentation

gmt legend は凡例を描くためのモジュールです。
おまかせモード手動モードがあります。
線の凡例はおまかせモード、記号の凡例は手動モードにした方がいいと思います。

スポンサーリンク
スポンサーリンク

おまかせモード その1

一番簡単な書き方は、凡例を描きたいコマンドの最後に「-l[凡例名]」を付ける だけです。

たとえば、

#!/bin/bash
gmt begin legend jpg
    gmt set GMT_VERBOSE = long
    gmt basemap -JX12 -R0/100/0/100 -Bafg -BWSne
    gmt plot -W0.25,Red -l"hogehoge" << END
10 10
70 70
END
    gmt plot -W0.25,blue -l"fugafuga" << END
70 90
40 30
END
gmt end

とすれば、この結果が

となります。

おまかせモード その2

もし、凡例の位置等が気に入らない場合、以下のように記述します。

gmt legend -D[凡例を描く位置]+j[文字を書き始める配置コード]+o[オフセット位置] +w[枠のヨコの長さ]/ [枠のタテの長さ] -F+p[枠線の太さ],[枠の色]+g[枠内を塗りつぶす色]
-DDxDgDjDJ の中から選択する。

たとえば、右上ではなく右下に凡例を描きたければ、

#!/bin/bash
gmt begin legend jpg
    gmt set GMT_VERBOSE = long
    gmt basemap -JX12 -R0/100/0/100 -Bafg -BWSne
    gmt plot -W0.25,Red -l"hogehoge" << END
10 10
70 70
END
    gmt plot -W0.25,blue -l"fugafuga" << END
70 90
40 30
END
    gmt legend -DjBR+jBR+o0.5/0.5 -F+pblack+gwhite
gmt end

となる。

従来の方法で描く

GMT4からあった書き方です。
面倒くさいです!

GMT ver5 の pslegend - あるStray Engineer の日記
凡例の描き方を少し系統立てて試してみました。 凡例の位置および大きさは-Dオプションで指定します。 赤枠の凡例のように -Dx1c/16cで左から1cm下から16cmを基準点とし、+jTLにより基準点との位置関係(凡例の左上を基準点とする)...

(ここのサイトを見た方が分かりやすいと思います。)

gmt legend [凡例ファイル] -D[凡例を描く位置]+j[文字を書き始める配置コード]+o[オフセット位置] +w[枠のヨコの長さ]/ [枠のタテの長さ] -F+p[枠線の太さ],[枠の色]+g[枠内を塗りつぶす色]
-DDxDgDjDJ の中から選択する。

凡例の描き方は以下の通り

N : 凡例の段組みの設定。2段組以上にする場合はlegendの「+w」を指定する必要がある。
S : 記号を描画する。記号の種類はplotと同じ。線を描くときは「-」を指定する。

S [書き始める位置] [記号の種類] [記号の大きさ] [塗りつぶす色] [太さ,色] [記号とテキストの間隔] [テキスト]

B : 水平のカラーバー。
D : 区切り水平線
L : ラベル。「-j」オプションで書く場所を指定できる。
G : 空白。長さを指定すること。

訳わからないと思いますが、慣れるしかないです。

たとえば、右下に凡例を描くためには、

#!/bin/bash
gmt begin legend jpg
    gmt set GMT_VERBOSE = long
    gmt basemap -JX12 -R0/100/0/100 -Bafg -BWSne
    gmt plot -W0.25,Red << END
10 10
70 70
END
    gmt plot -W0.25,blue << END
70 90
40 30
END
    gmt legend -DjBR+jBR+o0.5 -F+p0.25p,black+gwhite << END
N 1
S 0.5 - 0.5 - 1p,red 0.8 hogehoge
S 0.5 - 0.5 - 1p,blue 0.8 fugafuga
END
gmt end

となり、この結果が、

となります。

コメント

スポンサーリンク