理科系の勉強日記

Linux/Ubuntu/Mac/Emacs/Computer vision/Robotics

gnuplotでplot for

gnuplotでは,複数個のグラフをfor文を用いてplotすることができる.

例えば,手元に連番ファイル「00.dat, 01.dat, ... , 09.dat」があったとする.for文を使わない場合は

plot  "00.dat" u 1:2 with lp title "data 00"
replot "00.dat" u 1:2 with lp title "data 01"
...
replot "09.dat" u 1:2 with lp title "data 09"

などとなる.

plot forを使う場合は以下のようになる.

plot for [i=0:9] sprintf( "%02d.dat", i ) using 1:2 with lp title sprint("data %02d", i )  

「sprintf("----")」が「"----"」に置き換わるので,規則性をもつファイル名に対して大変便利である.

メモ

他の機能と組み合わせて

plot for [i=0:10] sprintf( "<head -%d output.dat |tail -8", (i+1)*8 ) using 2 with lp notitle

というように使用した.