満月紀行

備忘録

gnuplot で大量のオシロスコープの出力をグラフにした

そろそろ gnuplot を使ってみたい年頃なので、使ってみました。
普段は Ngraph ですが、似たようなグラフが大量に欲しい時に便利そうです。

序章

最近のオシロスコープWindows が入ってるそうで、波形を USB メモリに PNG やら CSV やらで保存できるんですね。
で、 PNG で保存してもいいんですが、単純にスクリーンショットを保存しているだけなのか、画面がそのまま出てくるんですよ。
必要なのは波形だけなので、 CSV からグラフにしてみよう、となりました。

タイトルに大量とついてますが、そんなに大量じゃないです (10枚)。

インストール

僕は Arch Linux なので、

$ yaourt -S gnuplot

で一発で入りました。
便利ですね。

スクリプトを書く

使い方はとさいぬさんの記事↓
blog.myon.info
が丁寧で詳しいです。
というかこの記事を読んでる前提で話を進めます。読んでください。
下で書くスクリプトもこの記事を 丸パクリ 丸パクリしています。読んでください。

似たようなグラフが大量に欲しいので、繰り返し処理を用います。
↓を参考にとさいぬさんのスクリプトに少し手を加えます。
termoshtt.blog110.fc2.com

#!/usr/bin/gnuplot

set datafile separator ','
set terminal postscript eps        #EPSファイルに保存

set grid
set xlabel 't [sec]'
set ylabel 'V(t) [V]'

do for [i=1:10]{
	set output  sprintf("%d.eps", i)

	plot sprintf("%d.csv", i) using 1:2 with l lw 3 dt 1 title 'CH1', \
	     '' using 1:3 with l lw 3 dt 0 title 'CH2'
}

白黒の EPS ファイルを出力するため、線の見分けがつくように破線を使い、ちょっと太くしています。
PNG に出力するときは破線が使えないみたいで、しばらく首を傾げていました。

do for{} の中身が繰り返され、 1.csv, 2.csv, ... , 10.csv から 1.eps, 2.eps, ... , 10.eps をパーッと生成してくれます。

実行する

$ gnuplot

gnuplot を起動します。
上で書いたスクリプトを "hogehoge" というテキストファイルに保存した場合、

gnuplot > load'hogehoge'

で実行します。
便利ですね。

余談

gnuplotGnuplot 、どちらの表記が正しいのだろうと思って公式サイトと思しきところを見に行った所、入り乱れていました。ここでは見かけることが多いような気がする小文字で書きましたが……。