2009年 4月 1日 掲載
今回は,ちょっと派手に,色を変えてみたりする.
その6 psxy -Sc で, データファイルの 3番目のフィールドの値を, シンボルのサイズにしてみたが, -Cオプションでカラーパレットファイルを指定することにより, 値によって違う色で描画することができる.
カラーパレットファイルには,
値1 Red1 Green1 Blue1 値2 Red2 Green2 Blue2
の 8つのフィールドを各行に記述する. 値1 から値2 までの間で,各色が線形に変化する. Red, Green, Blue は 256階調(0〜255)で指定する.
さっそく,ためしてみよう. 最初はシンプルに,0 から 1 までの間を, 白から赤に変化させてみる. 1行のファイル cp.cpt を,echo で,ささっと作ってしまおう.
$ echo 0 255 255 255 1 255 0 0 > cp.cpt
データファイルは,その6 で使った 2次元のガウス関数をもう一度作る.
$ awk 'BEGIN{for(x=-4;x<=4;x+=1)for(y=-4;y<=4;y+=1)print x, y, exp(-(x*x+y*y)/8)}' > g.txt
で,描画である.シンボルのサイズは大きめにしてみた.
$ psxy g.txt -R-4/4/-4/4 -Jx1 -Ba1 -Sc0.6 -Ccp.cpt > g.eps
色とサイズを同時に変えたいときは,データファイルに 4つ目のフィールドが必要となる. 各フィールドは,
となる.
2次元のガウス関数で,ためしてみる.
$ awk 'BEGIN{for(x=-4;x<=4;x+=1)for(y=-4;y<=4;y+=1)print x, y, exp(-(x*x+y*y)/8), exp(-(x*x+y*y)/8)}' > g2.txt $ psxy g2.txt -R-4/4/-4/4 -Jx1 -Ba1 -Sc -Ccp.cpt > g2.eps
カラー描画の機能を応用すれば,おもしろい図を作ることがでる. 座標間隔を細かくして,適当な大きさの四角形を敷きつめれば, グラデーションのかかった分布図が作れるのだ.
$ awk 'BEGIN{for(x=-4;x<=4;x+=0.4)for(y=-4;y<=4;y+=0.4)print x, y, exp(-(x^2+y^2)/8)}' > g3.txt $ psxy g3.txt -R-4/4/-4/4 -Jx1 -Ba1 -Ss0.6 -Ccp.cpt > g3.eps
カラーパレットファイルに複数行記述すれば, もっといろいろな色を塗ることができる.
例として,双曲放物面(hyperbolic paraboloid, x2-y2)を 2色で描いてみる. -16 から 0 を 青から白,0 から 16 を白から赤にしてみた.
$ awk 'BEGIN{for(x=-4;x<=4;x+=0.4)for(y=-4;y<=4;y+=0.4)print x, y, x^2-y^2}' > hp.txt $ echo -16 0 0 255 0 255 255 255 > cp2.cpt $ echo 0 255 255 255 16 255 0 0 >> cp2.cpt $ psxy hp.txt -R-4/4/-4/4 -Jx1 -Ba1 -Ss0.6 -Ccp2.cpt > hp.eps
[ KDOホームにもどる ] [ いちからはじめる GMT インデックスにもどる ]
(C) 2009 KDO