滑らかなレインボーカラーで描画する

GrADSのレインボーカラーはGMTと比べるとずいぶん見劣りしてしまいます。右の絵はGrADS(図1)及びGMT(図2)で描いたものです。一見それほど違わないように見えても、GrADSでは高緯度の細かい部分が表現できていません。

一方、下の図3は「私」作ユーティリティーで描画したものです。GMTとは少し色合いが違います *1 が、非常に滑らか(80色前後)に描けます。以下で使い方を説明します。


なお、このページで使用したデータは2007年4月10日00UTCの気象庁全球解析の可降水量(mm)です。


図1. GrADS (オリジナル)


図3. GrADS (「私」作ユーティリティー使用)


図2. GMT

*1 GrADSでは色の指定はRGBで行うが、GMTではRGBの他にHSV(色相・彩度・明度)でも行うことができる。GMTのレインボーカラーは大抵HSVで設定され、彩度・明度は全て1となる。HSVで描いたときには緑色のあたりの変化がわかりにくい(と思う)ので、GrADSの元の色をベースに変更している。


準備

環境変数GASCRPに設定されているディレクトリに GrADS_Scripts.tar.gz を展開する。(右クリックして保存。うまく展開できない場合)

環境変数GASCRPを設定していない場合 >>



使い方(基本編)

smcol  val   -lev   levmin   levmax    と入力する。

val

描きたい変数

levmin

最小値。これ以下の値は一定の色

levmax

最大値。これ以上の値は一定の色


使用例

例えば、GrADSコントロールファイルで pw という変数を設定していたとします。おおよそ0〜60の値が入っています。

通常は、

> d  pw

> run cbarn.gs (あるいは単に cbarn )

と入力して、右のように絵を描きます。

(ホントはその前にコントロールファイルを開いたり、塗りつぶしに設定したりしてますが省略)

このかわりに、

> smcol  pw  -lev  0  60

と入力します。0から60までの範囲で滑らかに絵が描かれます。0未満(例の場合はありませんが)及び60以上の値は一定の色で描かれます。

なお、最小・最大値は自分で設定しなければなりません。


応用編#1:カラーバーの数字の間隔を変える

smcol  val   -lev   levmin   levmax   -int levint    ( ‐ のついた引数は順不同)

levint

カラーバーの数字の間隔


使用例

引数 -lev を省略した場合、カラーバーの数字の間隔は自動で割り当てられます。基本編の例では、0, 5, 10, ……, 60というように5間隔で数字が入っています。

0, 10, 20, ……, 60というように10間隔で数字を入れたい場合には

> smcol  pw  -lev  0  60   -int 10

と入力します。

levint には levmax - levmin を割り切れるような値を入れてください。

例えば、

> smcol  pw  -lev  0  60   -int 7

のような値を入力すると、

 levmax 60 ==> 63

というように levmax の値が変更されます。


応用編#2:色調を変える

smcol  val   -lev   levmin   levmid_1   levmid_2   ......   levmax    

levmid

色調の中央値。複数指定可


使用例

今までの例では、0〜60の間で色調は一定に変化していました。けれども、値が小さなところだけ、色の変化を大きくしたいというようなこともあるでしょう。

0〜10までを細かく描画するには、

> smcol  pw  -lev  0  10  60

と入力します。

カラーバーを見ると、今まで色調の中央だった緑色が10の位置に来ていることが分かります。

levmid を複数設定することもできます。

例えば中央付近の値を細かく描きたい場合には、

> smcol  pw  -lev  0  25  35  60

と入力します。色調の1/3、2/3の位置にあった水色、黄色が、25、35の位置に移動しています。

もっとシャープに色を変化させたい場合には、

> smcol  pw  -lev  0  25  30  35  60

などとすることもできます


応用編#3:カラーバーの位置や大きさを変える

smcol  val   -lev   levmin   levmax   -bar sf  vert  xmid  ymid

sf

カラーバーの大きさ。標準は1。0.5で半分の大きさ等。0のときはバーを省略。

vert

0のとき水平、1のとき垂直にバーを表示する

xmid

バーのx方向の中心座標

ymid

バーのy方向の中心座標


使用例

カラーバーの位置や大きさを変えるには -bar を設定します。後ろの4つの引数は、 cbarn.gs とほぼ同様となっています(sf=0の設定のみ違う)。

例えばカラーバーの大きさを半分(0.5倍)にするには、

> smcol  pw  -lev  0  60   -bar 0.5

とします。

カラーバーを表示させないようにするには、sf = 0 とします。

> smcol  pw  -lev  0  60   -bar 0

カラーバーの水平・垂直は自動で設定されます。自分で設定する場合には、-bar の2番目の引数として、0(水平)または1(垂直)を設定します。

ただし、十分なスペースが必要です。

> smcol  pw  -lev  0  60   -bar 1  1

とすると、カラーバーは垂直になりますが、少しはみ出しています。

> set parea 〜

で右側に少しスペースを空けた後に上と同様のコマンドを入力すれば、画面内に収めることができます。

カラーバーの位置を自分で設定する場合には、3, 4番目の引数にx, y方向のバーの中央の位置を指定します。

現在の画面は Landscape mode(11×8.5)ですが、x方向を中央(5.5)、y方向を上方(7.8)に設定するためには、

> smcol  pw  -lev  0  60   -bar 1  0  5.5  7.8

となります。


応用編#4:レインボーカラー以外の色で描画する

 >> 



By T. Egawa <2014.04.13>
戻る