1. pointer 入門


1.1 pointer とは?

おそらくこの文章を目にしている方はすでにご存知でしょうが、 pointer は、データから簡単なグラフを描くためのソフトウエアです。 pointer を使ってみようなどという方は、 おそらく Lick mongo や gnuplot などのソフトウエアも 試されたことがあるでしょう (もちろん、聞いたこともない、という方もいるでしょうが)。 このソフトはそういった他のソフトと似た、 フリーのグラフ描画ツールです。
たいていのこうしたツールがそうであるように、 pointer も x と y の数値が羅列されたファイルをもとに、 グラフをウィンドウ上に描きます。 もっとも、ビジネスマンが資料作成に使うような 棒グラフやら円グラフやらを描かせるわけではなく、 物理の教科書や論文に出てくるような、 どちらかというとシンプルなグラフを表示します。 その意味でも、pointer は Lick mongo や gnuplot などと同様、 学生や研究者向けのソフトと言えるかも知れません。 それらのソフトと比べて違う点といえば、 pointer は(時として機能的に劣るとしても) とにかく手軽に使えることを第一の目的にしている点でしょうか。

そもそも pointer を作りはじめたのは、 作者がとある研究室の学部生だったころです。 専攻は天体物理で、その研究室ではちょっとしたグラフを見るのには Lick mongo を使っていました。 Lick mongo は描画の機能に関しては申し分なかったのですが、 グラフを見ながらグラフの範囲を変えたり、 実線から点線に変えたりといったことをするのが面倒で、 (いや、面倒というほど面倒ではないのですが、 作者は「コマンド一発で変えたい!」と思ったのです) もっといいグラフ描画ソフトはないかと考えていたのです。
X-window のプログラミングについてはいくつも解説書が出ていたので、 それをもとに自分用に小さなソフトをつくってみました。 それが pointer の最初のものです。 はじめは本当に小さいものをつくるつもりだったのですが、 あれこれと機能を付け加えていくうちに 今のようなものになってしまいました。 ただ、後から付け加えたものがあまりに多すぎて、 自分でもいやになるくらい雑然としてきてしまったので 一からあらためて書き直しました。 それが今のバージョン 2.0 です。

pointer もやはり mongo、gnuplot などのように 一行ずつコマンドを入力し、 インタラクティブにグラフを描くソフトです。 しかしバージョン 2.00 になってコマンド行の編集や ヒストリー機能、それに(不完全ではありますが)補完機能が 組み込まれるようになって、 使い勝手はむしろ tcsh 風ともいえます。 また、多くのグラフ描画ソフトがそうであるように pointer でもコマンドのプログラム化が可能ですが、 プログラムの書き方に関しては perl 風 (ということはある意味 C 言語風)でもあります。 対話的にも使え、ウィンドウを表示できるという点では 案外 tcl/tk に一番近いかも知れません。


1.2 pointer を使ってみる

pointer でグラフを描画させるのに必要な手順は、 おおむね次の3つです。
  1. (グラフを描画するための)ウィンドウを用意する
  2. データを読み込む
  3. 適当なコマンドを選んで描画させる
それぞれの手順は、 たいていいくつかの簡単なコマンドで実行できます。 コマンドの詳しい説明は後にゆずるとして、 ここでは手順にしたがって実際にグラフを 描いてみることにしましょう。

まずはじめに pointer を起動します。すると
>
というプロンプトがあらわれて、コマンドの入力を待つはずです。 (起動できないという場合はこのマニュアルの範疇外です。 きちんとインストールされているか調べるなり、 そのコンピューターの管理者に相談してみてください)。
さて、pointer を起動したら ふつう最初にするのはウィンドウの用意です。
> newwindow
あるいは省略して
> newwin
とコマンドを入力してください。 黒い無地のウィンドウが一つ、 表示されるはずです。 これからこのウィンドウにいろいろとグラフを描いていきます。

つぎにデータを読み込むわけですが、 そのためにはデータを書き込んだファイルを用意する必要があります。 pointer では元になるデータの形式はわりと自由がきくのですが、 ここでは一番シンプルな形でデータを用意しておきましょう。
適当なファイルに、グラフの横軸の値と 縦軸の値を並べて書いておきます。 次のような感じです。


    0.100000  0.793893
    0.200000  0.975529
    0.300000  0.975528
    0.400000  0.793890
    0.500000  0.499996
    0.600000  0.206104
    0.700000  0.024470
    0.800000  0.024474
    0.900000  0.206113

上の数値をファイルにコピーしてもいいですし、 似たような形式で、 自分でデータのファイルをつくってもかまいません。 何か適当な手段でデータファイルをつくってください。 とりあえずここではデータファイルの名前を sample.dat としておきましょう。
ファイルが用意できたら、 pointer に戻ってそのファイルを読み込ませます。
> open sample.dat
と入力するとそのファイルを開き、 さらに
> read
とするとファイルからデータを読み込みます。

データを読み込んだら
> draw
と入力してみましょう。 ウィンドウにグラフが実線で描かれるはずです。 さらに
> scale
とすればグラフの縦軸、横軸も表示されます。
ところで、それぞれの軸の目盛りを見てもらえば分かりますが、 何もしなければグラフは x、y ともに 0.0~1.0 の範囲で描かれます。 先ほど例にあげたデータはちょうどこの範囲におさまりますが、 データによってはここからはみ出てしまったり、 まったく描画されなかったりするかも知れません。 その場合にはグラフを表示する範囲を変えなければなりません。 とりあえず、
> xlimit
> ylimit
としてみてください。 先ほど読み込んだデータがちょうどおさまるように 範囲が変更されるはずです。 (ちなみに limit コマンドを使えば xlimit と ylimit を 同時にやってくれます)。 xlimit、ylimit コマンドは範囲を直接指定することもできます。 下の例のように最小値と最大値を指定してみてください。
> xlimit 0.2 1.5
> ylimit -0.5 0.5
また、当然ながら実線以外にも点線や破線のグラフが 必要な場合があるでしょう。 draw コマンドは引数に線の種類が選べます。 たとえば
> draw dot
とすれば、グラフは点線で描かれます。 種類に指定できるのは

sol, solid(実線)、dot(点線)、brk, broken(破線)
のいずれかです。
さらに、グラフを線ではなく丸や四角でプロットすることもできます。 draw コマンドの代わりに plot としてみてください。 こんどは丸でグラフが表示されたはずです。 もちろん plot もマークの種類を指定することができます。 指定できるのは
cir, circle(丸)、sqr, square(四角)、pts, points(点)、 fcir, fcircle(塗りつぶした丸)、fsqr, fsquare(塗りつぶした四角)
です。

さて、ひととおり思ったグラフが描けたでしょうか? ここまでにあげたコマンドだけでも、 簡単なグラフなら十分描けるはずです。 もしグラフを一度消して描き直したいと思ったら、
> clear
と入力してください。 あるいは、一からもう一度やりなおしたい、 今日はこのくらいにしてとりあえず pointer を終わらせたい、 という場合には
> quit
と打ち込めば、 pointer を終わらせることができます。


1.3 複数のグラフを描く