| 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とすると新しいウィンドウが開くので、あとはカットアンドペーストしてください。