花粉の飛散状況を材料に、時系列データの練習を。
前提
- 5.2系での確認(-cとか使用)
- –persist(-p) オプションを使用。
-p は OS X だとそれなり設定しないと使えません。
-pが設定されてない環境では、~/.gnuplotファイルを設定して、置き換えてから読むと良いかも(#1の最後で触れてます)。
.gnuplot
~/.gnuplot に以下の内容を記載。
set xdata time
set timefmt "%Y%m%d%H"
set format x "%Y/%m/%d"
set xtics rotate by 90 right
load ファイルに時間軸の設定を記載する場合の注意
$ cat ./.gnuplot
set xdata time
set timefmt "%Y%m%d%H"
set format x "%Y/%m/%d"
set xtics rotate by 90 right
$ gnuplot -c <( echo 'load ".gnuplot" ; ...') ...
などとして、呼び出す方法は、CentOS上では上手く行ったが、私の OS X(brew上)では上手く行かなかった1。
但し、~/.gnuplot に同様の記載をし、load コマンドを実行しない場合には上手く行く。
データの準備
はなこさんから花粉の飛散数のデータを適当にダウンロード。2019/02/01 から 03/10 までのデータだった。
私は、茨城県民なので、茨城3観測点のデータを。
format.csv読めばフォーマットについては説明されている。
利用しやすいように、測定局を1ファイルずつに分割。
% perl -F, -lane 'open my $out, ">>", $F[0] . q{.txt} ; print $out join " ", $F[2] . $F[3], $F[10]' Data.csv
測定局コードは、
50810200 つくば
50810100 水戸
50820100 日立
だそうで。
とりあえず、プロット
$ gnuplot -p -c <( echo 'plot for [ i = 1:ARGC ] ARGV[i] u 1:2 w l' ) 50810200.txt 50810100.txt 50820100.txt
ふむ。重なって見辛いぞ。
縮尺一緒のまま、ずらして、ちょこっと体裁を整える2。
$ gnuplot -p -c <( echo 'array Stat[3]=["tsukuba","mito","hitachi"]; \
set yrange [-0.5:3] ; \
set ytics ( Stat[1] 0, Stat[2] 1, Stat[3] 2 ); \
plot for [ i = 1:ARGC ] ARGV[i] \
u 1:($2/9000 + 1 * ( i - 1 ) ) w l title Stat[i]\
' ) 50810200.txt 50810100.txt 50820100.txt
- 配列(Stat[3])
- インデクスが1から始まる。
- ytics(Y軸の目盛)は、名前 Y値のカンマ区切りのセットで上書き出来る。もちろんxticsも。
- ただしmyticsなどが効かなくなってしまうらしい。
- using 引数内での四則演算は基本
- この場合は、9000で割って、描画をずらすために、index分足してる。
程度?