ターミナル上でgnuplotの出力をターミナルに直接描画する

  • 10
    Like
  • 0
    Comment
More than 1 year has passed since last update.

概要

最近この記事(Qiita:Vimで画像を見る(DRCSのSIXEL拡張の話))を読んだ。

どうやら世の中のUnixターミナルエミュレータはある特定の実機を元に実装してる場合が多く、その古の実機の中にSixelという形式でグラッフィック描画をサポートしていた物があったらしい。

最近になって、この機能が話題になり、vim上での画像表示や、ターミナルエミューレータ側でのSixelサポートや、その他アプリケーションでのSixel形式サポートが進んでいる。

gnuplotもSixelをサポートした。

使ってみる

私は普段はubuntuを手元では使っている。
ubuntu標準のgnome-terminalはSixelをサポートしていないが、xtermはサポートしている。
また、ubuntuのapt-getでxtermをビルドしていれば、Sixelサポートはenableになっている。

そこでubuntu上でxtermを起動する
xterm -ti 340 -xrm "XTerm*sixelScrolling: True"

sshで普段使っているクラスタにアクセスしgnuplotを起動する。
そして・・・

set terminal sixel
plot sin(x)

・・・グラフがターミナル上に表示されている。
あまりにもあっけなくできてしまって驚いた。

背景色が黒のターミナルエミューレタを使っている場合、軸や判例等がうまく表示されないだろうが、それは色が重なっているためだ。
例えば
set border linecolor rgbcolor "yellow"
set key textcolor rgbcolor "yellow"
とすれば良い。

素晴らしい。
この方法ならば、リモート側のシステムにまったく依存する事なく使う事ができる。x11転送を拒絶されている状況でもだ。
リモートの自分のローカルディレクトリに新しいgnuplotを忍ばせてSixelに対応したターミナルエミューレータでssh越しに叩けばよい。