gnuplot : 日時データのプロット方法を忘れてしまった場合の対処法(usingで擬似的な列を指定する)

はじめに : 日時データのプロットについて

以前にgnuplotで日時データをプロットする方法の解説をしました。
 方法自体はそこで紹介したものでいいのですが、実際に日時に関する実データをプロットするときにその設定を探してくるという手間が生じるでしょう。普段から日時データを扱っていない場合はなおさらかと思います。

今回紹介する方法は、日時データでもとりあえずプロットだけしてみるという話です。ちゃんとプロットする場合には当然向いていない方法なのであしからず。
(この方法の問題点は最後に後述してあります)

とりあえず日時データをプロット

方法としてはusingの解説で紹介したことを用います。
 ここで紹介した、擬似的な列を指定する方法を用います。

用いるデータ

 プロットに用いるデータとして以下のようなものを用意しました。
2018/3/9 21:00:00 3.6
2018/3/9 22:00:00 6.1
2018/3/9 23:00:00 3.0
2018/3/10 00:00:00 1.9
2018/3/10 1:00:00 5.2
2018/3/10 2:00:00 1.1
2018/3/10 3:00:00 2.2
2018/3/10 4:00:00 1.9
2018/3/10 5:00:00 2.8

  • 1列目 : 年月日
  • 2列目 : 時刻
  • 3列目 : Y軸データ
となっています。 これをそのままプロットしてもおかしなグラフになってしまうでしょう。またusingを使った場合でも "using 1:3" としても "using 2:3" としてもまともにプロットされません。
 これを擬似的な列でプロットする方法
using 0:3
もしくは
using 3
と指定すれば、x軸が 0, 1, 2, 3, 4, 5 , ... となり一応グラフとしてプロットされます。
(using ($0):($3)でも可)

 この方法はとりあえず簡易的にプロットしてデータ傾向を確認するくらいには使えるでしょう。ただ場合によってはまともに使えないこともあるので、次にそれに付いて触れていきます。

問題点

 この方法で問題になるのは、データ間隔がバラバラの場合。
例えば時系列に沿っていない以下のようなデータの場合
5/21 3
4/18 1
5/26 2
6/1 4
10/9 5
8/20 1

これをこの方法でプロットしてしまうと、上から 0, 1, 2, 3, 4, 5 , ...と割り振られてしまうので、グラフ上のデータ並びがまったくおかしなことになります。

時系列に沿っていればいいかというとそうでもなく
1:00 1.1
2:30 2.7
5:15 8.1
8:01 1.8
11:30 4.2
18:49 6.1

のように時間間隔がバラバラなデータの場合でも、この方法では均一な間隔でグラフ上のデータが並んでしまうことになります。

 このような場合は、この方法は使わずに始めからちゃんとした日時の指定方法を用いてプロットすべきです。

 この方法に限った話でもないですが、データ自体の特性とプロットに用いる方法の適用範囲が適しているかを把握しておかないとおかしなグラフが出来上がってしまいます。



gnuplot関連のブログ記事

コメント

スポンサーリンク


このブログの人気の投稿

gnuplotでプロットなどの色をcolornameの指定で変更する

catコマンドの出力を行番号付きにするためのコマンドラインオプション(-n, -b)

Ubuntu Softwareが起動しないのでいろいろと調べてみる(Ubuntu 20.04.1 LTS)

gnuplot : グラフにグリッド線を描く方法(set grid)

gnuplot : プロット画像のサイズ指定について(set sizeとの違い)