(Application) 2 次元描画スクリプト dcl2dplot

作成者:辻野智紀

概要

gnuplot のように, テキストカラムデータを上から読み込んで, 2 次元の等値線, カラーシェードグラフとして描画する ruby スクリプトである.

dclplot を 2 次元版にしたものです.

ソースファイル

  • メインプログラム : dcl2dplot. (2012/08/01, 12:15 JST; 作成)
  • サンプルデータファイル : gauss.dat (ガウシアン分布).

依存ライブラリ

  • GPhys
  • GGraph

使い方

  • 基本的には, 引数等を何もつけずに実行すると, usage が出力される.
$ ./dcl2dplot
[usage] : dcl2dplot [options] [filename]
[options] : 
--title="string" : draw the title.
--save-mode="string" : save file format
                       "string" : "PS" => post script, "PNG" => png
                                  default = "PNG"
--undef="string" : set the undefined value.
--set-xrange=[min:max] : set the x axis range.
--set-yrange=[min:max] : set the y axis range.
--set-axises=[colum number(x):colum number(y)] :
             set the x coordinate value.
             ex. --set-axises=[1:2].
--contour=[colum number] : set the contour value.
                               ex. --contour=[3].
--shade=[colum number] : set the color shade value.
                               ex. --shade=[4].
--set-cphys=[string:string] : set the contour [value name:unit].
                               ex. --set-cunit=[Temperature:K].
--set-sphys=[string:string] : set the shade [value name:unit].
                               ex. --set-sunit=[heat flux:W m-2].
--set-xtitle="string" : x axis title.
--set-ytitle="string" : y axis title.
--set-xsub="string" : x axis unit.
--set-ysub="string" : y axis unit.
--skip=number : line skip number.
--split=type : split type.
               ex. if you split by comma, --split=",".
               except : if you split by [tab], --split="tab".
[example] : dcl2dplot --set-axises=[1:2] --contour=[3] test.dat
[NOTE] : --contour or --shade, and --set-axises is neccesary.

読み込むテキストデータのフォーマット

  • x, y 軸の格子座標データと等値線あるいはカラーシェードで描く物理量をカラム形式で記述しておく.
  • 軸の格子座標データは不等間隔でも対応するが, 座標値は小さい値から大きい値となるように記述する.
    • おおまかな座標値の記述方法はサンプルデータファイル参照.
    • サンプルデータは x 軸を固定して y 軸の値を入れているが, 逆でも構わない.
  • テキストカラムの分割は半角スペースやカンマ, タブ区切りなど, 任意の区切り文字に対応している.
  • 欠損値処理も可能であり, 欠損値は文字でも構わない.
    • 文字が欠損値のデータを描画する際は必ず, オプション (--undef) に指定しておかなければならない.

サンプル

サンプルとして置いている gauss.dat は 2 次元ガウシアン分布を csv 形式で記録したテキストデータである. このデータを元に主な動作を示す.

以下, "./dcl2dplot" ではなく, "dcl2dplot" で実行しているが, パスの通ったディレクトリに実行権限つきで格納していれば, 以下のコマンドで実行可能である.

1. そのまま実行.

$ dcl2dplot --set-axises=[1:2] --contour=[3] gauss.dat

gauss_001.png

2. カラーシェードにしてみる.

$ dcl2dplot --set-axises=[1:2] --shade=[3] gauss.dat

gauss_002.png

3. 両方書いてみる.

$ dcl2dplot --set-axises=[1:2] --contour=[3] --shade=[3] gauss.dat

gauss_003.png

4. gphys のデータを入れてみる.

$ dcl2dplot --set-axises=[1:2] --shade=[3] --set-sphys=[temperature:K] gauss.dat

gauss_004.png

5. 領域を指定してみる.

$ dcl2dplot --set-axises=[1:2] --shade=[3] --set-sphys=[temperature:K] \
--set-xrange=[-0.5:0.5] --set-yrange=[-0.5:0.5] gauss.dat

gauss_005.png

6. 軸のタイトルを書く.

$ dcl2dplot --set-axises=[1:2] --shade=[3] --set-sphys=[temperature:K] \
--set-xrange=[-0.5:0.5] --set-yrange=[-0.5:0.5] \
--set-xtitle="x-coordinate" --set-ytitle="y-coordinate" gauss.dat

gauss_006.png

7. 軸に単位をつける (--set-xsub, --set-ysub)

$ dcl2dplot --set-axises=[1:2] --shade=[3] --set-sphys=[temperature:K] \
--set-xrange=[-0.5:0.5] --set-yrange=[-0.5:0.5] \
--set-xtitle="x-coordinate" --set-ytitle="y-coordinate" \
--set-xsub="m" --set-ysub="m" gauss.dat

gauss_007.png

8. Post Script への出力 (--save-mode)

$ dcl2dplot --set-axises=[1:2] --shade=[3] --set-sphys=[temperature:K] \
--set-xrange=[-0.5:0.5] --set-yrange=[-0.5:0.5] \
--set-xtitle="x-coordinate" --set-ytitle="y-coordinate" \
--set-xsub="m" --set-ysub="m" --save-mode="PS" gauss.dat
更新日時:2012/08/01 12:23:34
キーワード:
参照: