wxtターミナルについて

バージョン4.4以降のWindows版gnuplotではデフォルトのterminalがwxtになっています。wxtターミナルではwindowsターミナルに比べて描画品質が格段に向上しました。以前のwindowsターミナルの出力はお世辞にもあまりいいものとはいえず、windowsターミナルはデータの確認用程度にしか使えませんでした(最新のwindowsターミナルは大きく改良されています;下の※を参照)。しかし、wxtターミナルはアンチエイリアスが効いているなど図も非常にきれいに出ますし、文字の描画も他のターミナルと比べてそれほど遜色がありません。

windowsターミナルの出力例。線がガタガタして見える。
wxtターミナルの出力例。アンチエイリアスが効いているので、線がより滑らかできれいに見える。

例えば、「実験でとったデータをその場でプロットして印刷してノートに貼りつけておく」といった用途には、図をわざわざPostScriptやPNGで出力するよりもwxtのほうが素早くできて便利です。wxtターミナルをうまく使うことにより、gnuplotの使用範囲幅をまた一つ広げることができます。

※なお、最近はwindowsターミナルの方もだいぶ改良がなされており、以下のようにアンチエイリアスなども取り入れられています。機能的にはほとんど変わらなくなってきているので、wxtを選ぶかwindowsを選ぶかはあとは好みの問題かもしれません。

windowsターミナルの出力例(gnuplot4.6.0)。wxtターミナルと比べても遜色がなくなっている。

wxtターミナルを用いる場合の注意点

wgnuplotをコマンドラインからスクリプトファイルを引数として起動する(コマンドラインでwgnuplot "script.plt"のように入力)場合、グラフウィンドウのみが立ち上がります。このグラフウィンドウを閉じた場合の挙動がwxtターミナルとwindowsターミナルの場合とで異なっています。すなわち、windowsターミナルではグラフウィンドウを閉じた場合にwgnuplotのプロセスが終了しますが、wxtの場合はグラフウィンドウを閉じてもプロセス自体は残ってしまうようです。(これはタスクマネージャーで確認できます)

※なお、gnuplot 4.6.3以降ではこの挙動が修正されているようです。(2013/05/31追記)

プロセスが残ったままだとメモリを無駄に食った状態が続くわけですし、何よりwgnuplotのプロセスが増えすぎるとwgnuplotが起動できなくなるという問題もあります。通常の使い方では問題は出ないと思いますが、自作のプログラム等からwgnuplotを起動している場合は注意が必要かと思います。

なお、この問題は以下の1行をスクリプトの先頭に加えておくことで大体回避できると思います。この行の意味は、にwxtターミナルでグラフウィンドウを閉じる操作をしたときはexit gnuplotというexitコマンドよりも強い終了コマンドを実行する、ということです。

bind "Close" "if (GPVAL_TERM eq \'wxt\') bind \'Close\' \'\'; exit gnuplot; else bind \'Close\' \'\'; exit"

拙作のwgnuplot-modeでも上記のテクニックを応用してプロセスが残るのを回避しています。

なお、以前なぜか私のWindows 7上でwxtターミナルがうまく動作しないということが起こりました(非常に重いうえ、最終的にアンチウイルスソフトに駆除されてしまう)。同様の症状が起きている方、またはやはりwindowsターミナルがいいという方は、環境変数GNUTERMwindowsにしておくと、デフォルトのterminalをwindowsに変更できます。