ffidltkでプロットする何かを探していてBLTは高機能だけどなんとなくインストーラが気に食わなかったり、パッケージの仕方が汚くてインストールしたくなかったりするのですが、いろいろとWeb漁っているうちにgnuplotがtkcanvasに出力できるとか。なんでも3.6からの新機能らしい。新機能にはpng出力とかロウソク足のプロットとかができるようになってたのでこれはと思い、3.5から3.7.3にバージョンアップしてみました。webで検索して簡単なマニュアルをやってみる。canvasにプロットするプロシージャをファイルに出力し、それにcanvasのパスを渡してプロットしてやるという手順らしいです。multiplotはできないとか書いてあるけど、できるようです。multiplotモードのままsourceして失敗したのでしょう。nomultiplotしてやらないと、プロシージャの定義が完了しません。(図は適当に出力してみた例。期待のローソク足が激烈に汚い(汗))次。tclからgnuplotにパイプでコマンドを流してtkcanvas用のプロシージャを出力させてみます。windows版のgnuplotは独自のコンソールを立ち上げてパイプで流し込めないのですが、付属のpgnuplot.exeを使えばパイプで接続することができます。$pと、このようにすればgnuplot.procを作ってくれるので、こいつをsourceしてやればよいです。注意しないといけないのはファイルの書き込みが完了する前にsourceするとまずいので、適当に同期処理を書くといいと思います。.cこのようにすればcanvasにプロットされます。$pでパイプを閉じればOK。gnuplot.procファイルが残ってるけど、気になるならこれも削除すればOK。windows版だとpgnuplotを使ってパイプ接続できるのは、書き込みだけでgnuplotのSTDOUTをtclのSTDINに接続することはできないようです。unixだと双方向パイプで接続できるのになあ。