gmt colorbarの使い方

colorbar — GMT 6.2.0 documentation

gmt colorbarplotgrdimageなどで使用したカラーパレットのカラースケールを描画するためのコマンドです。
基本的にmakecptと一緒に使うことが多いでしょう。

gmt colorbar -D[描く場所]+w[タテの長さ/ヨコの長さ][+h][+e] -C [-B][+l”label”]

スケールを付けるベース図

今回は以下の図のカラースケールを描いていきます。
Y座標の値で色を変えています。

#!/bin/bash
for i in `seq 0 1 10`
do
    for j in `seq 0 1 10`
    do
        echo "${i} ${j} ${j}" >> plot.txt
    done
done

gmt begin plot png
    gmt basemap -JX12 -R0/10/0/10 -Bafg -BWSne
    gmt makecpt -Crainbow -T0/10/1 -Z
    gmt plot plot.txt -Sc0.5 -W0.25 -C
gmt end

gmt makecpt の使い方
GMTのmakecptモジュールについて説明しています。

座標の決め方

スケールを置く位置は4種類から選べる。

  1. グラフの座標 (-Dg)
  2. 図の左下を原点とした長さで指定 (-Dx)
  3. 位置コード (-Dj/-DJ)
  4. 相対的位置 (-Dn)

グラフの座標 (-Dg)

gmt colorbar -Dg[X座標/Y座標]+w[タテの長さ/ヨコの長さ][+h][+e] -C [-B][+l”label”]
※ あらかじめJオプションとRオプションを指定しておくこと。
※ “+h”を付けると水平スケールとなる(デフォルトは垂直スケール)。
※ “+e”を付けると三角形をバーの両端に付ける。
※ “-B”を指定しない場合はmakecptで指定した間隔で目盛りを設定する。

たとえば、(11, 0)の位置に垂直スケールを付けるには、

#!/bin/bash
for i in `seq 0 1 10`
do
    for j in `seq 0 1 10`
    do
        echo "${i} ${j} ${j}" >> plot.txt
    done
done
gmt begin plot png
    gmt basemap -JX12 -R0/10/0/10 -Bafg -BWSne
    gmt makecpt -Crainbow -T0/10/1 -Z
    gmt plot plot.txt -Sc0.5 -C -W0.25
    gmt colorbar -Dg11/0+w5/0.2 -Baf
gmt end

とすれば、この結果が、

となります。

なお、-Baf を付けない場合はmakecptで指定した間隔が引き継がれます。
-Bafは原則付けるようにしましょう。

なお、スケールの順番を逆にしたい(0を上にして100を下にする)場合は、タテの長さを負にすることで反映されます。(ここでは +w-5/0.2 とすればよい。)

図の原点からの距離で決める (-Dx)

gmt colorbar -Dx[図の左端からの位置/図の下端からの位置]+w[タテの長さ/ヨコの長さ][+h][+e] -C [-B][+l”label”]
※ “+h”を付けると水平スケールとなる(デフォルトは垂直スケール)。
※ “+e”を付けると三角形をバーの両端に付ける。
※ “-B”を指定しない場合はmakecptで指定した間隔で目盛りを設定する。

たとえば、図の原点から右に13cm, 上に0cm(=そのまま)の位置に、“Y”というラベルが付いた垂直スケールを付けるには、

#!/bin/bash
for i in `seq 0 1 10`
do
    for j in `seq 0 1 10`
    do
        echo "${i} ${j} ${j}" >> plot.txt
    done
done
gmt begin plot png
    gmt basemap -JX12 -R0/10/0/10 -Bafg -BWSne
    gmt makecpt -Crainbow -T0/10/1 -Z
    gmt plot plot.txt -Sc0.5 -C -W0.25
    gmt colorbar -Dx13/0+w5/0.2 -Baf+l"Y"
gmt end

とすれば、

となります。

位置コードで指定する (-Dj / -DJ)

gmt colorbar -Dj[位置コード]+w[タテの長さ/ヨコの長さ][+h][+e][+j[位置コード]][+o Xオフセット/Yオフセット] -C [-B][+l”label”]
※ スケールは図の内側に表示される
※ 位置コードは[T|M|B]+[L|C|R]を組み合わせること。(左下はBL,上部中央はTC等)
※ “+h”を付けると水平スケールとなる(デフォルトは垂直スケール)。
※ “+e”を付けると三角形をバーの両端に付ける。
※ “+j”は-Djにて指定した位置に、スケールのどの場所を置くかを指定する
※ “-B”を指定しない場合はmakecptで指定した間隔で目盛りを設定する。


gmt colorbar -DJ[位置コード]+w[タテの長さ/ヨコの長さ][+h][+e][+j[位置コード]][+o Xオフセット/Yオフセット] -C [-B][+l”label”]
※ スケールは図の外側に表示される
※ 位置コードは[T|M|B]+[L|C|R]を組み合わせること。(左下はBL,上部中央はTC等)
※ “+h”を付けると水平スケールとなる(デフォルトは垂直スケール)。
※ “+e”を付けると三角形をバーの両端に付ける。
※ “+j”は-DJにて指定した位置に、スケールのどの場所を置くかを指定する。
※ “-B”を指定しない場合はmakecptで指定した間隔で目盛りを設定する。

位置コードは使いこなせると便利です。慣れるまでが面倒くさいですが。

たとえば、

スケールの位置はグラフの右下にスケールの左下を載せる
高さは5cm, 幅は0.2cm

というスケールを描く場合は、

#!/bin/bash
for i in `seq 0 1 10`
do
    for j in `seq 0 1 10`
    do
        echo "${i} ${j} ${j}" >> plot.txt
    done
done
gmt begin plot png
    gmt basemap -JX12 -R0/10/0/10 -Bafg -BWSne
    gmt makecpt -Crainbow -T0/10/1 -Z
    gmt plot plot.txt -Sc0.5 -C -W0.25
    gmt colorbar -DJBR+w5/0.2+jBL+o1/0 -Baf
gmt end

とすると、

となります。

0~1の相対的位置で決める (-Dn)

gmt colorbar -Dn[Xの相対的位置/Yの相対的位置]+w[タテの長さ/ヨコの長さ][+h][+e][+j[位置コード]][+o Xオフセット/Yオフセット] -C [-B][+l”label”]
※ 位置は、図の長さを1として相対的に指定する。
※ “+h”を付けると水平スケールとなる(デフォルトは垂直スケール)。
※ “+e”を付けると三角形をバーの両端に付ける。
※ “+j”は-Dnにて指定した位置に、スケールのどの場所を置くかを指定する。
※ “-B”を指定しない場合はmakecptで指定した間隔で目盛りを設定する。

たとえば、グラフの中央下部に水平方向の三角形付きスケールを描くには、

#!/bin/bash
for i in `seq 0 1 10`
do
    for j in `seq 0 1 10`
    do
        echo "${i} ${j} ${j}" >> plot.txt
    done
done
#!/bin/bash
gmt begin plot png
    gmt basemap -JX12 -R0/10/0/10 -Bafg -BWSne
    gmt makecpt -Crainbow -T0/10/1 -Z
    gmt plot plot.txt -Sc0.5 -C -W0.25
    gmt colorbar -Dn0.5/-0.1+h+e+w5/0.2+jMC -Baf
gmt end

となり、この結果が、

となります。

コメント

タイトルとURLをコピーしました