makecpt — GMT 6.6.0 documentation
カラーパレットを作成するためには gmt makecptを使用します。
gmt makecpt -C[ベースとなるカラーパレット] -T[最小値]/[最大値]/[間隔] [-Z]
または、
gmt makecpt [元となる座標データ等] -E[何段階にするか] -i[参照する列数] -C[ベースとなるカラーパレット] [-Z]
※ -i はゼロオリジン。
使用例
以下の図はY座標の値によって色を変えている。
今回はこのような図を作成してみよう。
ベースとなるカラーパレットを選ぶ
まず、ベースとなるカラーパレットを選ぶ。
選択できるカラーパレットは以下参照。
Page not found · GitHub Pages
今回は 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
という書き方ができます。
???な人は分からないままで問題ありません。
最初の使い方をマスターすれば大丈夫です。
コメント