gnuplotの勉強 : 日付&時刻の演算について
gnuplotの日付や時刻の扱い、まだいまいち理解出来ていないので、いつもの解説記事ではなくて勉強している過程で分かった範囲を書いておきます。ちゃんとまとまったら解説記事としてまたまとめ直そうかと予定してます。 現時点ではちゃんとしたまとめではないため、この記事に書いてあることは内容の齟齬や思い違いが含まれるかも知れません。 gnuplotの日付と時刻の扱いのおさらい 日付と時刻の扱い、基本的なことは以前の解説記事に書きました。 gnuplotでの日時データのプロットについて 単に日付、時刻がデータとして含まれるデータファイルをプロットする分には、そこに書いた内容で対応出来るでしょう。今回考えていくのは、そのデータファイルの日付、時刻のデータに演算処理をしていくことについて。どういうことをしようとしてるのかは次で説明します。 演算処理が必要になる場面 演算処理が必要になる場面として、例えば以下の2つのデータを並べてプロットすることを考えます。 2018年の1年365日のデータ(書式 : 2018/07/21) その5年前の2013年の同様のデータ(書式 : 2013/07/21) ここでは以下のような簡単なダミーデータを作って試すことにします(Y軸の数値は適当にcos関数で作っています)。 2018年分のダミーデータ 同様にして2013年のデータも以下のように作っておきます(こっちのY軸はsin関数)。 2013年分のダミーデータ プロットするにあたり、1月1日から始まるように以下のようにgnuplotの設定を行いプロットしました。 set xdata time set timefmt "%Y/%m/%d" set format x "%m/%d" そしてプロット結果は以下のようになります。 異なる年のデータを並べてプロットしようとして失敗 プロット結果を見て分かるように、2つの年のデータが大きく離れてプロットされてしまいました。こうなってしまった原因は単純で、x軸の書式を"%m/%d"という書式にしていても開始は"01/01"ではなく"2013/01/01"から始まっているため。なので2018年のデー...