RTP (Real Time Plotter) は標準入力から
X-Y のデータ座標を読みながら
(ちょうどメカニカルプロッターのように)
データ点を線で結んでウィンドウに表示します。
スケーリングは自動で行われますが、任意の矩形領域に設定することもできます。
作者: David Watt さん
ホームページ:
http://www.ee.pdx.edu/~watt/rtp/
バージョン: 1.0.1 (2000/03/15)
ライセンス: GPL
付属ドキュメントREADMEを読む
(この README は 1.0 のもので、利用している Qtライブラリの説明が古いです。
1.0.1 は Qt 2.x 対応になっています。
上記ホームページに掲載されている README は改訂されているようです。)
インストールすると、
/usr/share/doc/rtp-1.0.1/demo_drivers/
に
デモ用のデータを作成するプログラム lorentz
と
spiraldrive
がありますから、これで試してみましょう。
lorentz
(ソースは lorentz.c) は
ローレンツアトラクタとして知られている方程式による曲線のデータ座標を
出力します。
適当なターミナル・エミュレータから
$ /usr/share/doc/rtp-1.0.1/demo_drivers/lorentz | rtp
で起動すると、上に示したようなウィンドウが現れてプロットを始めます。
最初はオートスケールになっています。
マウスボタンでドラッグするとその領域が表示の範囲に設定され、
オートスケールは解除されます。
表示範囲が狭くなると、たった今プロットしている点は表示範囲の外になってしまう
かもしれないですね。そんな状態で画面の上方にある右側のボタン
(Track new points)
をクリックすると、表示範囲が新しいプロット点を追い掛けるように
なります。
左側のボタン (View full data set) をクリックすると元のオートスケールに
戻ります。
終了ボタンはないので、終わるにはウィンドウを閉じます。
lorentz
の出力の最初の10行はこんな感じです。
1.000000 1.000000 1.000000 1.439200 1.070272 1.874308 1.198918 2.336913 1.380997 2.852963 1.616512 3.445900 1.909214 4.138849 2.265955 4.956220 2.696398 5.924941 3.212965 7.075439
数値データの読み込みは、空白、タブ、改行 (まとめて white space といいます) を区切りとして順に X、Y に割り当てます。従って
1 1 2 4 3 5 4 1
というデータは (1,1)、(2,4)、(3,5)、(4,1) の4点の座標と解釈されます。
C でプログラムしなくても、awk、perl などのスクリプト言語でもグラフ、曲線が書けますし、すでに X-Y データがテキストファイルになっていれば
$ cat data.txt | rtp
のように使えます。
ゆっくりプロットしたい場合、例えばおよそ 0.1 秒ごとにするには
$ cat data.txt | while read line; do echo $line; usleep 100000; done | rtp
のようにするとよいでしょう。
データファイルに3つのカラムがあって、第1カラムを X に、第3カラムを Y
としてプロットしたいなら awk を使って
$ cat data.txt | awk '{print $1, $3}' | rtp
のようにします。perl の方がお好みなら
$ cat data.txt | perl -ane 'print "$F[0] $F[2]\n"' | rtp
RTP 自身はオプションも設定もないシンプルなプログラムですが、 他のコマンドとの組み合わせで色々な使い方ができます。
LinuxMLD 7 および MLD 6 では rtp-1.0.1-1_mlb3.i386.rpm (40,092 bytes) をインストールします。
※ MLD 7 では先に、DVD-ROM から qt2-2.3.1-13 を追加インストールしてください。
rpm コマンドでインストールするにはスーパーユーザになって
# rpm -i rtp-1.0.1-1_mlb3.i386.rpm
とします。
LinuxMLD 5 では rtp-1.0.1-1_mlb2.i386.rpm (40,137 bytes) をインストールします。
MLD 5,6 では Gnome の GUI でインストールすることもできます。
オリジナルでは、データの読みとりで X 座標と Y 座標の間は1つの white space でなければいけないようになっていて少々不便なので、 複数の white space があっても良いように 修正を加えています。
標準入力からデータを読み込んでプロット出来るツールとしては、
David Harrison さんの xgraph
が古くから知られています
(xgraph
はデータをすべて読み込んでから表示するので、
RTP のような Real Time のプロットはできません)。
オリジナルはもうメンテナンスされていないようですが、
いくつか派生バージョンがあります。
データのプロットを含む一般的なグラフ作成アプリケーションについては gnuplot のページを参照してください。