gmt colorbar はplotやgrdimageなどで使用したカラーパレットのカラースケールを描画するためのコマンドです。
基本的に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
座標の決め方
スケールを置く位置は4種類から選べる。
- グラフの座標 (-Dg)
- 図の左下を原点とした長さで指定 (-Dx)
- 位置コード (-Dj/-DJ)
- 相対的位置 (-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
となり、この結果が、
となります。
コメント