next up previous
Next: ホームページに実験結果を載せる Up: ホームページ (2)インターネットの入口 Previous: la

gnuplot

忘れないうちにgifついでに言っ ておくと、今私は、実験データなどを図にする際に、gnuplot というツールを利用している。これはanonymous ftp (originalはftp.dartmouth.edu)で取得で きるフリーソフトなのだが、「非常に簡単なコマンドで数式やデー タの多種多様なグラフを作成できる」gifという、とても 優れたソフトウェアなのである。もちろん、例にもれず、この ソフトも言ってみれば「マニアック」なので、そのコマンド体 系を修得しなければ(非常に簡単なグラフの作成さえ)使用は 困難なのだが、いったんそのコマンドに馴染んでしまえば、処 理されたデータファイルからそのまま図が作成されてしまうと いうくらいに処理が簡単にできてしまうのだ。

本当は、今回のテーマは「ホームページ」なので、あまり深入 りすることはできないが、その手軽さと有用性を説明するため には、やっぱり、もう少し深入りしなければならない。どうい うことかというと、私は、実験データを解析するために、その 実験のために新たに作成されたディレクトリに「README」とい う名称のプログラムを作っている。そこには、その実験での処 理内容(プログラム)が記載されていて、データgifを処理するときに は、UNIXのコマンドラインから、

% README (ただし、%はプロンプト)

と打ち込むだけなのである。そうすると、あらかじめ決められ た手順に従って、データを処理して、図表まで作成してしまう のだ。もちろん、READMEというファイルの中にはana1とかana2 といった個別の解析手順を記したプログラム名が記されている のだが、そこに例えば「gnuplot fig1.gp」という記述があれ ば、fig1.gpというプログラム手順に従った図が作成され(例 えばそこでfig1.texというLaTeX用のグラフファイルが作成さ れるとする)、その次の「latex fig1.tex」というコマンドで その図がコンパイルされ、「dvi2ps fig1 | lpr」というコマ ンドで印刷されるというわけである。

これにはどういうメリットがあるのかをもう少し詳しく述べて おこう(ちょっと深入りしすぎか?)。一般的に、実験データ を図表化する際には、データをエクセルなどの表計算ソフトに 入力して統計処理した上で、範囲を指示してグラフを作成する か、あるいは、別のグラフ作成ソフトからそのデータファイル (またはその統計処理結果)を呼び出すというのが普通のやり 方だろう。もちろん、このやり方が悪いというわけではないが、 コンピュータを前にした処理の全てが手作業であるから、実験 途中の段階でデータをとりまとめて統計解析したりグラフを作 成したりすると、それを更新しようとする度に同じ作業手順を 繰り返さなければならず、ついつい面倒に感じてしまうため、 「全部のデータが揃うまで結果をまとめない」という気持ちに なることもあるだろう。ところが、私のやり方だと、データ解 析処理もその統計処理gifもすべてプログラムに記述して同じ UNIX環境で処理できるようにしているので、その解析手順の作 成作業は、なにも実験データが全部集まるまで待つ必要はなく、 実験開始前からでも手がけることができるし、実験途中で「こ ういうグラフが見てみたい」と思えば、それを作成した後に READMEファイルの中にそのプログラム名を記述しておけば、以 後は実験データが追加・更新される度に、上記の「README」と いう命令だけで、それまでに手がけた全ての図表が(新規デー タに更新された上で)出力されるというわけなのである。つま り、このようなやり方をしていれば、その日の実験が終わって マニュアルでの処理・入力が終わった段階で、単に「README」 と入力するだけでその時点での結果gifを眺 めることができるのである。

もう少しいえば、そのディレクトリの中にはdocという名称の サブディレクトリがあり、LaTeXで記された書きかけの論文原 稿(例えば、そのファイル名はpaper.texだとする)もある。 先のREADMEというファイルの中に、「latex paper.tex」とい うコマンドを入れておくと、その書きかけ原稿の中に上記の図 を取り込んで、一括してコンパイルされるし、次行に「dvi2ps paper | lpr」と記しておけば、上記の「README」という処理 命令だけで、データ処理から図表を含んだ論文印刷まで、一気 にやってしまうのだgif



Yoshio Nakamura
Mon Dec 27 10:02:29 JST 1999