next up previous
: レポートの書き方 : 計算機によるデータ解析 : データのSTEXへのFTPによる転送


gnuplotによるスペクトルデータの表示と解析

gnuplotはグラフソフトであり、本実験では分光器データを視覚化するため に利用する。gnuplotの基本的な使い方は、「一般物理学実験用計算機システムの使い 方」の第7章を参照すること。またUNIXのコマンドについては同書付録Aが参考 になる。ここでは分光器から取り込んだデータをプロットする具体的な方法に ついて述べる。

ファイルの準備

まずSTEXにloginする。次に、分光器から取り込んだデータを加工するプログ ラムを用意してあるので、それを持ってくる。UNIXシェルのコマンドラインか ら次のように入力する。

   /home/ohba/gnuplot/setup.sh
   rehash

/home/ohba/gnuplot/setup.sh を実行すると、以下のファイルが、各自の、 home directory19 の、bin20 と biophys directory にコピー される。

    normal       最大値で規格化するプログラム
    area         面積で規格化するプログラム
                 area と normal に -s start_X -e end_X のオプションを与
                 えると、その範囲での最大値や面積で規格化する。(散乱の
                 あるスペクトルで、散乱部分は除いて規格化したい場合に便利)

    spec_calc    Yの値に定数を加減乗除するプログラム
    spec_calc2   X座標が同じふたつのファイルの、Yの値の加減乗除を行い出力する
    nm2wavenumver X座標を、波長(nm)から波数(cm-1)に変更するプログラム
    xshift       X座標の値から、一定量だけ引いて、出力する
    g-factor     G因子の励起波長依存性を計算するプログラム
    anisotropy   蛍光異方性の励起波長依存性を計算するプログラム
    raw          データファイルから余分なヘッダーを取り除くプログラム
    rawall       current directory にある .txt のファイルすべてについて、
                 余分なヘッダーを取り除き、.dat の名前で保存する。
    aniso_vs_temp 実験3,4の各温度での偏光の強度から、異方性や強度を出力する。
    psjoin       複数の印刷用(ポストスクリプト)ファイルをひとつにまとめる。

    (ここまでは、実行形式のプログラムなので、~/binにコピー)
    (以下は、サンプルデータなどなので、~/biophysにコピー)
    spec         グラフの体裁を整えるスクリプト
    psplot       postscriptで出力するスクリプト
    rf1500.txt   RF1500のサンプルデータ
    fp6300.txt   FP6300のサンプルデータ
    sample_dopc.txt aniso_vs_temp で使うデータ形式

なお、上記の解析プログラムには、ほとんどの場合、プログラムの最初に簡単な 使い方が書いてある。使い方がわからない場合は、

     less ~/bin/normal
のように、直接、プログラムの内容を見て、(必要があれば)変更して用いること。 また、新たに解析用のプログラムを追加する場合もある。その場合には、最新情 報は、
/home/ohba/gnuplot/README
ファイルに書いてあるので、このファイルを 見ること。

以下では、RF1500およびFP6300から取り込んだデータのファイル名をそれぞれ rf1500.txtおよびfp6300.txtとし、current directory にあるとする。

gnuplotの起動

gnuplotを起動するには、シェルのコマンドラインから

    gnuplot
と入力する(リターンキーも押すこと)。すると何やらメッセージが表示される が、無視して構わない。最後の行に
    gnuplot>
と表示されるので、これからここにコマンド(命令)を入力してgnuplotを使う ことになる。

gnuplot で、実際にデータをプロットするためには、そのデータが置いてある directory にいた方が便利である。その directory に移ってから、gnuplot を起動すれば良いのだが、gnuplot を立ち上げた後でも、current directory を変更出来る。例えば、home directory で gnuplot を立ち上げたあとで、上 で作成した biophys directory に移り、そこにあるファイルのリストを見る ためには(括弧内は説明)、

    gnuplot>pwd  (current directory を表示させる)
    /net/s1/home/ohba
    gnuplot> cd "biophys" (biophys directory に移る)
    gnuplot> pwd (current directory を確認する)
    /net/s1/home/ohba/biophys
    gnuplot> !ls -l (シェルの ls -l コマンドを起動) 
    total 13
    -rw-r--r--  1 ohba  wheel    48 Sep  3 16:25 psplot
    -rw-r--r--  1 ohba  wheel  2917 Sep  3 16:25 rf1500.txt
    -rw-r--r--  1 ohba  wheel  8071 Sep  3 16:25 fp6300.txt
    -rw-r--r--  1 ohba  wheel    94 Sep  3 16:25 spec
    !
    gnuplot>
とする。ちなみに、ひとつ上の directory に移るのは、cd "../" である。

とにかくプロットしてみる(データをそのままプロットする場合)

分光器から転送したデータには、実験条件などの(gnuplotにとってはよけいな) ヘッダが付いているため、そのままではプロットできない。そこで用意してある raw コマンドを使って適切に変換してからプロットする。それには、gnuplotの コマンドラインで、次のようにする。

    gnuplot> plot "<raw rf1500.txt"
これで画面にグラフが表示される。"<raw rf1500.txt" の部分は、plot の入力 として、raw rf1500.txt の出力を用いることを意味する。

ひとつのデータを plot する場合には、上記の方法が簡単であるが、多くのファ イルにraw コマンドを通すのは面倒である。そこで、rawall というコマンド(シェ ルスクリプト)を準備した。これは単純なスクリプトであるので、ソースを見れ ばわかるが、current directory にある、".txt"という拡張子のついた ファイルすべてについて raw を通した結果を".dat"というファイルに書 き出すようになっている。RF1500でとったデータの拡張子が".txt" 以外 の場合には、エディターでrawallを変更する。また、raw を他のプログラムに変 更することも可能。例えば、prog="normal"とすれば、最大値で規格化し たファイルを生成する。

規格化してからプロットする

上述の方法では、グラフの縦軸は分光器の測定条件によりまちまちで、デー タの比較の際に都合が悪い。そこで、規格化するプログラムを2種類用意した。




最大値による規格化

normalは最大値による規格化を行なうプログラムである21。 gnuplotのコマン ドラインで

    gnuplot> plot "<normal rf1500.txt"
とすると、最大値で規格化されたグラフが表示される。散乱が発光スペクトルの ピークよりも強い場合、全領域の最大値で規格化すると、散乱のピークで規格化 されてしまい、比較したいスペクトルで規格化されない。その場合には、
    gnuplot> plot "<normal -s start_X -e end_X rf1500.txt"
のように、-s と -e で、最大値を捜す範囲を与えると、その範囲の最大値で規 格化したスペクトルを出力する。




面積による規格化

areaは面積による規格化を行なうプログラムである。gnuplotのコマンドラ インで

    gnuplot> plot "<area rf1500.txt"
とすると、面積で規格化されたグラフが表示される。この場合も、-s と -e で、 面積を計算する範囲を与えることができる。

複数のグラフを重ねて表示するときは、ファイル名をcommaで区切って連ね る。例えば次のようにする。

    gnuplot> plot "<normal rf1500.txt","<normal fp6300.txt"

グラフの体裁を整える

グラフを線で描く

デフォルト(何も指定しないこと)では、データは点でプロットされる。グラ フを線で描くには、gnuplotのコマンドラインで、あらかじめ次のように指定 しておく。

    gnuplot> set data style lines
この後plotコマンドを使うと、折れ線グラフで表示される。(すでにplotコマ ンドを使用した後なら、単にreplotと入力するだけでグラフが再表示される。)

なお、点で表示したいときは

    gnuplot> set data style points
点と線で表示したいときは
    gnuplot> set data style linesp
とする(linespはlinespointsの略)。




グラフの表題と軸ラベルの変更

グラフの表題を「fluorescence」(蛍光)にする。

    set title "fluorescence"

x軸のラベルを「wavelength」(波長)にする。

    set xlabel "wavelength"

y軸のラベルを「intensity」(輝度)にする。

    set ylabel "intensity"




凡例の変更

デフォルトでは、凡例はデータファイル名になっている。これを変更するに は、plotコマンドにtitleオプションを付ける。

    gnuplot> plot "<normal rf1500.txt" title "RF1500","<normal
    fp6300.txt" title "FP6300"
(コマンドが長くなり行が折り返しても、1行に続けて入力し、最後だけリター ンキーを押すこと。)




グラフの大きさの変更

例えば、縦横70%に縮小して出力したい場合、

    gnuplot> set size 0.7,0.7
と指定した後plotする。この指定はプリンタへの(postscriptファイルへの)出 力にも有効である。

グラフをプリンタで印刷する

利用するプリンタはpostscriptプリンタであるため、gnuplotのグラフを postscript形式でファイルに出力しておく必要がある。

  1. まず生成されるpostscriptファイルのファイル名を決める。ここでは fp6300.psとする。gnuplotのコマンドラインから次のように入力する。
        gnuplot> set output "fp6300.ps"
    
    次に、postscript形式で出力するように設定する。
        gnuplot> set terminal postscript
    
    続けて、実際に出力するグラフをプロットする。
        gnuplot> plot "fp6300.txt"
    
    (すでにplotコマンドを使用した後なら、単にreplotと入力するだけでよい。) これでfp6300.psという名前のpostscriptファイルが生成された。このとき、 画面にグラフは表示されない。

  2. 次に、postscriptファイルfp6300.psを、lprコマンドでプリンタに送る。 それには、gnuplotのコマンドラインから次のようにする。
        gnuplot> ! lpr fp6300.ps
    
    (「!」はgnuplotのコマンドで、シェルコマンドを実行する機能を持つ。)これでグ ラフがプリンタから出力される22

  3. 再び画面にグラフを表示する設定に戻すには、
        gnuplot> set terminal x11
    
    とする23

G因子と蛍光異方性のスペクトル演算

G因子のスペクトルを計算する

シェル上で次のコマンドにより、 hvとhhのスペクトルからG因子のスペクトルを計算し、 g.txtに保存する。

    g-factor hv.txt hh.txt > g.txt

その後gnuplotでg.txtをプロットする。




蛍光異方性のスペクトルを計算する

シェル上で次のコマンドにより、 vv, vh, hvおよびhhのスペクトルから蛍光異方性のスペクトルを計算し、 r.txtに保存する。

    anisotropy vv.txt vh.txt hv.txt hh.txt > r.txt

その後gnuplotでr.txtをプロットする。


... directory19
login した時に入る directory。シェルでは、 ${HOME} とか ~/ で表わされる。
... の、bin20
STEXの標準環境では、~/bin directory の下に自分で作った実行形式のプログラムを置けば、どの directory から でも、プログラム名だけで直接実行できる。
...normalは最大値による規格化を行なうプログラムである21
normal や area は、元のデータファイルの余分なヘッダーを取り除いてから処理を行うの で、raw を通してから使う必要はない。
... ラフがプリンタから出力される22
プリンタを選ぶ場合は、lpr -Pプリン タ名 とする。プリンタ名は、各プリンタのパネルに書いてあるので確認する。
... とする23
x11とは X Window system のこと

next up previous
: レポートの書き方 : 計算機によるデータ解析 : データのSTEXへのFTPによる転送