LoginSignup
0
0

More than 5 years have passed since last update.

gnuplotでストリームデータをプロットする

Posted at

gnuplotでストリームデータ(パイプなど)をプロットしたいと思ったが,案外面倒だったので方法とモジュール.

ストリームデータのプロット方法

ストリームデータのプロット方法を見ると,pauserereadの組み合わせなどが載っている(ここなど).ただ,どれも基本的にpollingで追加データをプロットしているので,更新間隔は必要に応じて変える必要がある.

一方,ファイルの変更を監視する(e.g., inotify)しようとすると,gnuplot上では動かないので,rereadは使えない(と思う).すなわち,gnuplotでpollingに頼らずストリームデータをプロットするには,

  1. ファイルやstdinの変更を監視する.
  2. 変更されたら一時ファイルにその変更を反映する.
  3. gnuplot上で,replotまたは,plot ...をすることでプロットを更新する.

という3つの処理を行う必要がある.

npmモジュール (sgnuplot)

上記処理は案外面倒だったので,npmのモジュールにまとめて公開した(使い方はREADME参照).inotifyがあればシェルスクリプトでも書ける程度の内容だが,エコシステムがなく管理が難しいと感じたためnpmにした.
また,logrotate等は考慮していないが,長期間の可視化をするためのものではないので,問題はないのではないかと思う.

時間がかかる計算のログを確認したい時に,tail -Fよりは見やすいツールとして使えるのではと期待(使ってはいない).

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0