gnuplot> set term tkcanvas {perltk} {interactive} gnuplot> set output 'plot.file'
そして "wish" を起動した後で、以下の Tcl/Tk コマンド列を実行してくださ い:
% source plot.file % canvas .c % pack .c % gnuplot .c
Perl/Tk の場合は以下のようにしてこのプログラムを使います:
use Tk; my $top = MainWindow->new; my $c = $top->Canvas->pack; my $gnuplot = do "plot.pl"; $gnuplot->($c); MainLoop;
gnuplot によって生成されたコードは "gnuplot" と呼ばれる手続きを作り、 それはその引数を canvas の名前とします。その手続きが呼ばれると、それは canvas をクリアし、canvas のサイズを見つけ、その中に丁度収まるようにグ ラフを書きます。
2 次元の描画 (plot) では 2 つの手続きが追加されて定義されます: "gnuplot_plotarea" は描画範囲の境界を含むリスト "xleft, xright, ytop, ybot" を canvas スクリーン座標で返し、2 つの対の軸の描画座標での範囲 "x1min, x1max, y1min, y1max, x2min, x2max, y2min, y2max" は手続き "gnuplot_axisranges" を呼べば得られます。"interactive" オプションを指 定すると、canvas の線分上でマウスをクリックするとその線分の中点の座標 が標準出力に出力されるようになります。さらに、"user_gnuplot_coordinates" という手続きを定義することで、それに代わる新たな動作を起こすことも可能 です。その手続きには以下の引数が渡されます: "win id x1s y1s x2s y2s x1e y1e x2e y2e x1m y1m x2m y2m"、これらは、canvas の名前、線分の id、 2 つの座標系でのその線分の開始点の座標、終了点の座標、そして中点の座標 です。中点の座標は対数軸に対してのみ与えられます。
tkcanvas の現在の版では multiplot も replot もサポートしていませ ん。
竹野茂治@新潟工科大学