PREV | UP | NEXT | TOP |
グラフは横軸に日付、縦軸に体重をとるのですが、実際には横軸に2000年12月31日から何日経過したかをとっています。つまり、2001年1月1日は1、1月2日は2‥‥12月31日は365となります。日付はそれぞれの数に文字列を割り当てることで表示しています。日付を横軸にとる方法もあるようなのですが、直線近似をするときにうまくいかなかったので、結局この方法に落ち着きました。
さしあたって1ヶ月分を表示させるため、x軸の表示区間は1から31までです。
まずはweight.gpl
として以下の内容で作成します。適宜変更してください。
set title "Weight 2001" # タイトル set key # 凡例表示 set grid # 格子線表示 set ylabel "Kg" # y軸の単位 set yrange [60:70] # y軸の表示区間 set ytics 60, 1, 70 # y軸の目盛 set xlabel "Date" # x軸の単位 set xrange [1:31] # x軸の表示区間 set xtics ( \ "1/1" 1,\ "1/4" 4,\ "1/7" 7,\ "1/10" 10,\ "1/13" 13,\ "1/16" 16,\ "1/19" 19,\ "1/22" 22,\ "1/25" 25,\ "1/28" 28,\ "1/31" 31 \ ) # x軸の目盛 # 1のところには"1/1"と表示 set terminal png small color # 出力はpngファイル a=1 # 変数aの初期値を1、 b=1 # 変数bの初期値を1として f(x)=a*x+b # 1次関数を考え、 fit f(x) "data.txt" using 2:3 via a,b # aとbを最小2乗法で近似 # データはdata.txtの2カラム目と # 3カラム目を使用する plot "data.txt" using 2:3 title "Original" with linespoints,\ f(x) title "NLLS" with lines,\ "data.txt" using 2:3 smooth csplines title "Splines" with lines # それぞれの使用ファイル、使用カラム、凡例タイトル、線種で # グラフを表示
weight.gpl
の中で読み込まれるdata.txt
は以下の形式で作成します。1カラム目は日付で、その行が何月何日のデータであるかを人間が理解するためのものであり、計算機は1カラム目を無視します。2カラム目がx軸、3カラム目がy軸のデータになります。上記のweight.gpl
の中の数箇所で
using 2:3と指定している部分がその指定です。
1/1 1 65.0 1/2 2 64.0 1/3 3 64.1 1/4 4 63.8 1/5 5 64.2
各カラムの区切りはスペースまたはタブです。
これらのファイルを用意した後、weight.gpl
をgnuplotに読み込ませ、グラフを出力します。例えばLinuxでは
% gnuplot weight.gpl > graph.png
とすれば、graph.png
という画像ファイルが作成されます。
あとはdata.txt
を日々更新してgnuplotで処理する作業の繰り返しなのですが、2月、3月と日が経つに連れて何日目か数えるのが大変になりますね。雛型ファイルとしてtemplate.txt
を作成しました。ご利用ください。ただし、データのない日付の行はdata.txt
に残しておくことはできないのでご注意を。
plot "data.txt" using 2:3 smooth bezier title "Bezier" with linesとします。
set terminal windowsとすると新しいウィンドウが開くので、あとはカットアンドペーストしてください。