永井@知能.九工大です.

Ruby/TkGnuplot ができましたので公開します.

# 眼のダメージで本業以外での計算機利用 ( Ruby/Tk メンテなど) は
# お休み中ですが,これは本業の方で必要だったというわけです.(^_^)

README.jp の内容で説明しますと,
=====================================================================
Ruby/TkGnuplot は,ver.3.6 以降の Gnuplot でサポートされた tkcanvas デ
バイス出力を利用してグラフ表示を行うためのライブラリです.TkCanvas ク
ラスのサブクラスとして TkGnuplotCanvas クラスが定義されています.ウィ
ジェットサイズの変更に合わせてグラフを自動的に再描画することもできます.

Gnuplot は一つのプロセスとして生成し,パイプを使ったプロセス間通信によっ
て制御します.ここでの手法は,Gordon Miller 氏の Ruby/Gnuplot でのアイ
ディアに基づいていますが,実装は少し違っています.これは,Ruby/Gnuplot
のままの実装では Tk とのインターフェースに不便であったためです.

gnuplot.rb で定義された GnuplotProcess クラスのオブジェクト一つが一つ
の Gnuplot プロセスに相当します.プロット用データの定義方法などは,
gnuplot.rb の末尾にあるテストまたはデモ用のスクリプトを見てください.

GnuplotProcess オブジェクトによって,Gnuplot を生で制御することができ
ますが,複数のグラフを同時に扱おうとした場合は少し不便です.例えば,
X 上でターミナル番号を指定して複数の表示ウィンドウを扱う場合を考えてみ
ましょう.この時,表示に複数のスレッドが絡んでいると,スレッド切り替え
により誤った動作をする恐れがあります.xgnuplot.rb は,この問題を隠蔽し
て X 上で複数の表示ウィンドウを扱うための X_Gnuplot クラスを定義してい
ます.gnuplot.rb のデモと xgnuplot.rb のデモとはほぼ同じことをしていま
すから,比較してみてください.

Tk で複数のグラフを扱いたい場合,Gnuplot によって生成される Tk スクリ
プトにおける表示手続き名が gnuplot に固定されているのが問題です.
tkgnuplot.rb では,Tcl の namespace を用いて表示スクリプトをそれぞれ異
なる名前空間に閉じ込めることで,この問題を回避しています.

tkgnuplot.rb のデモでも gnuplot.rb や xgnuplot.rb のデモと同じものを表
示するようにしていますが,新しいバージョンのイベントループが実装された 
Ruby/Tk でなければイベントループがデッドロック状態となって再描画が止まっ
てしまいます.アプリケーションにおいてこれと同様の問題にぶつかった場合
は,最新バージョンを用いることで回避できるかもしれません.

現在の Ruby/TkGnuplot は利用上の必要最低限度の実装は行っているつもりで
すが,まだまだ不十分です.修正パッチなどできましたら歓迎致します.
=====================================================================
というものです.
RAA に登録しておきましたので,興味がある方は持っていってください.
-- 
                                         永井 秀利 (九工大 知能情報)
                                             nagai / ai.kyutech.ac.jp