gnuplot


gnuplot は,unix ベースのグラフ描画ツール.テキストデータからグラフ描 画が行なえる.結果は,gui 表示しても良いし, png/jpg/eps/html(canvas)/terminal などのファイルに落すこともできる.

データ形式

  • スペース / タブ区切り.
  • コメントは基本的に # を使う.
  • 今回は 11 万行のデータを plot する前提です.
# 10/01 のデータ
2011/10/01_00:00:38 102.891
2011/10/01_00:01:38 102.891
2011/10/01_00:02:38 102.891
2011/10/01_00:03:38 102.891
2011/10/01_00:04:38 102.892
2011/10/01_00:05:38 102.892
2011/10/01_00:06:38 102.892
2011/10/01_00:07:38 102.892
2011/10/01_00:08:38 102.892

データの描画から,ファイルへの保存までの流れ

  • まず,gnuplot のインタラクティブモードに入る.
% gnuplot
  • 上記のデータの場合,日付データが入っているので,日付に関する設定を適用.
  • timefmt には,他にも曜日とか 2 桁の西暦表示とか,いろいろある.
gnuplot> set xdata time 
gnuplot> set timefmt "%Y/%m/%d_%H:%M:%S"
  • x と y の範囲を決める.
gnuplot> set xrange ["2011/10/01_00:00:00":"2011/12/18_00:00:00"]
gnuplot> set yrange [0:350]
  • デフォルトだと,x の日付の間隔が長いので,4 日毎くらいにする.第 3 引数は,秒数指定なので,頑張って計算する.
gnuplot> set xtics "2011/10/01_00:00:00" 345600
  • x と y に文字列を適用する.
gnuplot> set xlabel "Date"
gnuplot> set ylabel "cumulative sent data (GB)"
  • 見易さのためにグラフの中に点線を入れる.
gnuplot> set grid 
  • わかり易さのためにグラフのタイトルを入れる.
gnuplot> set title "2011/10/01 - 2011/12/17 cumulative sent data"
  • plot してみる.
    • 第一引数はデータファイル.
    • 第二引数は,x, y で使うデータの指定.もし,1 行に 3 つのデータがあり,1,3 番目を使いたい場合は,1:3 と指定する.
    • 第三引数は,線の引き方の指定.lines, points, linspoints など.
gnuplot> plot "data.txt" using 1:2 with lines
  • 見にくいので,スムースな線にしてあげる.
    • every は,1000 個毎にデータを利用する,という意味.
    • 1000 個ごとのデータを with points してあげると,なんとなく見やすかったのです.
gnuplot> plot "data.txt" using 1:2 with smooth csplines with lines, \
gnuplot>      "data.txt" every 1000 using 1:2 with points
  • 何か設定を変えたので,再描画したい.
gnuplot> replot
  • plot されたデータの設定を見たい時.
gnuplot> show all
  • 中断して,次に作業を復帰させたい時.
gnuplot> save "hoge.plt"
gnuplot> load "hoge.plt"
  • png, jpg, eps など,ファイル形式で保存したい時.
    • 保存可能な設定一覧の確認.
gnuplot> set terminal 
  • png に設定する.
gnuplot> set terminal png
  • 保存するファイル名の設定.
gnuplot> set output "hoge.png"
  • 保存するには,新しく plot するか,表示されているものを replot です.ただ,何故か,そのままだと画像を open しているだけの時があるので,set terminal wxt とかしてあげると,Closing *.pdf とかなって,ちゃんとグラフが吐き出されます.なぜ?

その他

set terminal canvas

  • HTML を吐いてくれます.
  • js で適当にきれいにしてくれるので,結構便利.

参考 URL

gnuplot.txt · 最終更新: 2012/11/14 14:00 by 127.0.0.1
文書の先頭へ
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0