Credits | Overview | Plotting Styles | Commands | Terminals |
---|
時刻データの当てはめでは、gnuplot は 1970 1 月 1 日からの秒数として時 刻を表現していることを思い出すことが重要です。例えば、2023 年のある 1 日の間に計測したなんらかの時間に依存したデータに対して、2 次関数モデル での当てはめをしたい場合、以下のようにそれができると期待するでしょう:
T(x) = a + b*x + c*x*x set xdata time fit T(x) 'hits.dat' using 1:3 via a,b,c
しかしそれは多分失敗します。なぜならそのある日に対応する内部での x の の値は [1.67746e+09 : 1.67754e+09] のような範囲になってしまうからです。 計測データの x の小さな変更はわずかに 1.e-05 程度なので、収束を保証す るためには、初期パラメータ評価で多分ずっと先の小数第何位の精度が必要に なってしまうでしょう。
一つの解決策は、時間を測定の開始時間からの時間に変更して問題を作り変え てしまうことです。
set xdata time # データ書式は "27-02-2023 12:00:00 計測値" timefmt = "%d-%m-%Y %H:%M:%S" set timefmt timefmt t0 = strptime( timefmt, "27-02-2023 00:00:00" ) fit T(x) 'temperature.dat' using ($1-t0):3 via a,b,c
これはデータの範囲を [0 : 86400] に変え、より扱いやすくなります。 この場合の他の方法としては、1 列目の日付を無視し、2 列目に相対時刻形式 (tH/tM/tS) を使用することです。
set timefmt "%tH:%tM:%tS" fit T(x) 'temperature.dat' using 2:3 via a,b,c