便利な使い方

インデックスへ戻る

ラベルつきの散布図を楽に描きたい

西村特製の perl スクリプト gplabel を使用する。 これを使用するには、perl あるいは jperl がインストールされていなければ ならない。

使用方法 :
   gplabel [data_file_with_label] (col_1:col_2) (position)

必要な引数
data_file_with_label : 先頭の列にラベル、2列目以降がデータとなるファイル

省略可な引数
col1 : xy プロットの x軸データとなる列数(ラベル列を除いた列数)デフォルトは 1
col2 : xy プロットの y軸データとなる列数(ラベル列を除いた列数)デフォルトは 2
position : ラベルの位置 l(left), r(right), c(center) デフォルトは center

標準出力に gnuplot のプロットファイルが出力される。

データファイルの例(#を行頭につけるとコメント行)

# label_name	factor-1	factor-2	factor-3	factor-4
bread         	-1.851658	-0.1667283	-1.369777	1.82463
medicine        0.1164504	-0.6455933	-0.6264347	-2.618559
spices 	       -1.146258	-0.9804246	1.336713	1.211886
meat           2.090881 	-0.02967502	0.2651936	1.352711
fish            0.5860635	0.7327561	1.037975  	0.1136725

使用例

Unixの場合、
gplabel datafile r > plotfile
gplabel datafile 2:3 > plotfile
上の例は、ラベルを右につけて、データファイルの1,2列目をプロットする

下の例は、ラベルを中央につけて、データファイルの2,3列目をプロットする

Windowsの場合、DOS窓で、

jperl gplabel datafile > plotfile

のように、jperl プログラムを最初に入れなければならない。 あとは、出来た plotfile を gnuplot 上から load してやればよい。


いろんなグラフを書きたい

関数のプロット範囲を制限したい

$HOME/.gnuplot あるいは、Windowsなら、gnuplot.ini に

range(x, x1, x2) = log10(10*((sgn(x-x1)+1)/2 * (-sgn(x-x2)+1)/2))
という関数を定義しておく。描画を制限したい関数名を f(x) をすると、
gnuplot> plot f(x)*range(x,1,10) with lines
のように使用すると、描画範囲を 1〜10 までに制限できる。Windowsの場合は、 gnuplotを起動するショートカットの作業ディレクトリを、gnuplot.ini ファ イルのある場所にしておかなければならない。


ラクしたい

既にあるプロットファイルを書き換えたり、gnuplotのコマンドラインを 起動せずに LaTeX出力や、ポストスクリプトファイルを作成したい

sed とパイプ、リダイレクションを使う(UNIXのみ)。プロットファイルを sample.plt とすると、

sed -e s/x11/"pos ps 24"/ sample.plt | gnuplot > sample.ps
sed -e s/x11/latex/ sample.plt | gnuplot > sample.tex
上の例では、24point のPSファイルを、下の例では LaTeX形式のグラフをファ イルに出力することができる。


Copyright (C) 1998 Akira Nishimura
akira@rsch.tuis.ac.jp