gmt makecpt の使い方

makecpt — GMT 6.2.0 documentation

カラーパレットを作成するためには gmt makecptを使用します。

gmt makecpt -C[ベースとなるカラーパレット] -T[最小値]/[最大値]/[間隔] [-Z]

または、

gmt makecpt [元となる座標データ等] -E[何段階にするか] -i[参照する列数] -C[ベースとなるカラーパレット] [-Z]
-i はゼロオリジン。

使用例

以下の図はY座標の値によって色を変えている。

今回はこのような図を作成してみよう。

ベースとなるカラーパレットを選ぶ

まず、ベースとなるカラーパレットを選ぶ。
選択できるカラーパレットは以下参照。

16. Of Colors and Color Legends — GMT 6.2.0 documentation

今回は rainbow を選択する。

gmt makecpt -Crainbow

最小値と最大値・間隔を決める

今回はY座標の値によって色を変えたいので、最小値は0, 最大値は10, 間隔は1 にしておく。

gmt makecpt -Crainbow -T0/10/1

連続化をするか?

基本は連続化をすることをおすすめする。
-Cで選択したカラーパレットの中では連続化できないものもあるので注意。

gmt makecpt -Crainbow -T0/10/1 -Z

他のスクリプトと合体

最後にまとめてみると、

#!/bin/bash
gmt begin hogehoge png
    gmt basemap -JX12 -R0/10/0/10 -Bafg -BWSNE
    gmt makecpt -Crainbow -T0/10/1 -Z
    for i in `seq 0 1 10`
    do
        for j in `seq 0 1 10`
        do
            echo "${i} ${j} ${j}" | gmt plot -Sc0.5 -W0.25 -C
        done
    done
gmt end

カラーパレットを使用するので、gmt plot には -Cを付ける。
またGMTはデータの3列目を読んで色を決定するので、3列目にY座標の値を入力している。

この結果が、

となる。

なお、gmt plot-N を付けると、グラフの枠からはみ出ていても、強引に記号を描くようになる。

すなわち、

#!/bin/bash
gmt begin hogehoge png
    gmt basemap -JX12 -R0/10/0/10 -Bafg -BWSNE
    gmt makecpt -Crainbow -T0/10/1 -Z
    for i in `seq 0 1 10`
    do
        for j in `seq 0 1 10`
        do
            echo "${i} ${j} ${j}" | gmt plot -Sc0.5 -W0.25 -C -N
        done
    done
gmt end

とすると、

となる。

もう1つの使い方

あまりおすすめしない書き方です。

たとえば、最小値も最大値も分からない何万行もあるデータを考えます。
そうすると、-T[最小値]/[最大値]/[間隔] を調べるのに時間がかかってしまいます。
そこで、使うのが2番目の使い方です。

すなわち、

#!/bin/bash
rm hoge.txt
for i in `seq 0 1 10`
do
    for j in `seq 0 1 10`
    do
        echo "${i} ${j}" >> hoge.txt
    done
done
gmt begin hogehoge jpg
    gmt basemap -JX12 -R0/10/0/10 -Bafg -BWSne
    gmt makecpt hoge.txt -Crainbow -E10 -i1 -Z
    awk '{print $1,$2,$2}' hoge.txt | gmt plot -Sc0.5 -W0.25 -C
gmt end

という書き方ができます。

???な人は分からないままで問題ありません。
最初の使い方をマスターすれば大丈夫です。

コメント

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