投稿

空模様(2018年12月23日〜12月29日)を映したタイムラプス動画

イメージ
2018年12月23日〜12月29日の空模様を映したタイムラプス動画を Youtubeにアップロードしました。 アップロードした動画は一週間分まとめたものになっています。 以下、Youtube動画内の各日付へのリンクと天気など情報になります。 12月23日 日曜日 おおむね曇り 12月24日 月曜日 曇り時々晴れ 12月25日 火曜日 晴れのち曇り 12月26日 水曜日 晴れ時々曇り 12月27日 木曜日 曇り時々晴れ 12月28日 金曜日 おおむね雪 12月29日 土曜日 おおむね雪

gnuplotで文字列変数に入れてある文をコマンドとして差し込む方法(@を変数名の前に付ける)

gnuplotで文字列変数と言えば、文字列としてファイル名、ラベルやタイトルなどで使われます。今回紹介するのはそれとはやや異なり、コマンド文に文字列変数を差し込んで(置換して)使うという方法です。文字列変数だけでは使える範囲が限られますが、紹介する方法ではもっと適用範囲を広げて文字列の差し込みとして使うことが出来ます。 例として gnuplot> plot 'test01.dat' using 1:4 with linespoints というコマンド文で見てみることにします。 ここで文字列変数text01を以下のように作成します。 gnuplot> text01 = "using 1:4 with linespoints" 内容は見て分かるようにコマンド文のファイル名の後ろの部分としました。 そしてこのtext01をコマンド文として使うときには変数の先頭に"@"を付けて gnuplot> plot 'test01.dat' @text01 とします。こうすることで、コマンド文を実行するときに@text01が中身の文字列として置換されます。 また、コマンド文の一部だけ置換するのでは無く、コマンド文の一行全部も同じように扱うことも出来ます。あまり意味があるか分かりませんが、以下のようなことが出来るというわけです。 gnuplot> c =  "plot 'test01.dat' using 1:4 with linespoints" gnuplot> @c この機能はインタラクティブモードよりもスクリプトファイルを書く時に便利でしょう。 コマンド文の中の設定部分を各パーツごとに分けて変数として作っておけば、後々手を加えるときに編集箇所を分かりやすくしておくことが出来るというわけです。 例としては以下のようになります。 f = "test01.csv" u = "using 1:4" t = "title 'hogehoge'" l = "'function sin' at 3,21 boxe...

図書館で借りてきた本をスマートフォンで管理

最近の図書館はWebから蔵書検索が出来るところが多いです。 蔵書検索サービスとしては図書館独自のものの他に、いくつもの図書館の蔵書を一度に検索出来るカーリルみたいのもあります。 カーリル | 日本最大の図書館蔵書検索サイト カーリル - Wikipedia さて、蔵書検索で本を探すのはそういうサービスが利用できますが、では図書館で借りてきた本の管理はどうでしょう?本の管理といっても、ちゃんと返却期限までに図書館なり返却ボックスなりに返せばいいわけですが、それをスマートフォンでより便利にする方法を紹介していきます。 カレンダーアプリで返却日を確認 まず本の返却期限については、カレンダーアプリの予定に追加しておけばいいでしょう。返す前日とか一週間前とかにアラートが出るように設定しておけば、返却日を忘れにくくすることが出来ます。 蔵書管理アプリで借りてきた本を忘れないようにする 多めに本を借りてきたときに、返す本がどれだったかを忘れてしまうこともあるでしょう。借りてきたものはちゃんと整理しておくべきですが、それでも返すときにどの本を返せばいいか分かっていれば探すのも楽になります。 こういうのはメモ帳に借りてきた本を書いておけば済みますが、スマートフォンアプリの「蔵書管理」系のアプリを使うとより管理しやすくなります。蔵書管理系のアプリは結構数多く出ています。本のバーコードをカメラ機能で認識するだけで登録出来るのもあるので、自分にとって便利なものを探してみて下さい。借りてきた本と、これまで借りた本を別管理するのも後々分かりやすくなるので、フォルダ管理機能もあるといいかもしれません。 蔵書管理なんてめんどう、という場合でも借りてきた本をざっと並べてカメラで写真を撮って残しておくだけでもいいでしょう。借りてきた本が分かればそれでいいのです。 地図アプリで返却場所へのルート検索 地図アプリも使えば、返却場所へのルート検索も便利になります。図書館以外に返却出来る返却ボックスの位置を登録しておけば、何かの用事のついでに返すときに便利になるかも。 最後に ここで紹介したもの以外に、読んだ本を記録して読書の感想を書き残して他の人と感想を共有出来るサービス(とそのアプリ) もあります。スマートフォンでいろいろアプリやサービスを組み合わせるとより便利に図書館を利用...

gnuplotのstatsコマンドで取得出来る統計データを用いたグラフプロットの例

イメージ
gnuplotではデータファイルをプロットする他に、データファイルの統計データを取得するということも出来ます。そして統計データを取得するには「 statsコマンド 」を使用します。 ここでは取得出来る統計データの扱いに関してはあまり触れず、簡単な利用方法を説明していきます。 statsコマンドの使用方法はドキュメントを読んでもらうとして、実際にコマンドを実行すると端末に統計データの計算結果が出力されます。そして単に結果が出力されるだけでなく、統計用の変数にその結果が代入されます。どのような変数があるかについては、こちらもドキュメントを参照して下さい。 気温のデータを用いた例 statsコマンドを利用した例を、気象庁のデータダウンロードサービスから取得した気温のデータを用いて説明していきます。 取得したデータは以下の通り。 地点 :富士山 期間 : 2018年1月1日〜12月31日 項目 : 日最低気温 取得したデータファイルは扱いやすいようawkなどのコマンドで編集しています。 ここではデータファイルの1列目が行番号、2列目が日付、3列目が日最低気温となっています。 データファイルの一部を抜き出すとこんな感じになってます 283 2018/10/10 -1.7 284 2018/10/11 -3.4 285 2018/10/12 -8.2 286 2018/10/13 -6.3 287 2018/10/14 -11.5 288 2018/10/15 -9.5 データファイルをダウンロードした段階では行番号は付いていません。statsコマンドでは日時データが扱い難いため、取り扱いの観点から行番号を付与しました。2列目に日付が残ってますが、statsコマンドはplotコマンドと同じようにusingで解析する行を指定出来るので1:3のように指定すれば問題ないです。 statsコマンドの実行 statsコマンドは簡単には以下のように実行する形となります。 gnuplot> stats 'test001.csv' using 1:3 (一列だけ解析するなら "using 3" と指定します) コマンドを実行すると端末上に以下のように解析結果が出力されます。 * FILE:...

gnuplotでグラフのプロット上に数値などのラベルを表示する方法

イメージ
グラフのプロット上に数値などのラベルを表示する方法を紹介していきます。 このプロット方法ですがあまり情報が集まらなかったので、今回は解説というよりメモ程度の話になります。gnuplotの公式サイトにあるプロットのデモを参考にして、使い方を押さえていけばいいかと思います。 ラベルプロットの例 棒グラフをプロットするものとして、グラフの各プロット(点)上にyの値を書きたい場合は以下のようなコマンドになります。 gnuplot> plot [0:10][0:15] 'test01.dat' u 1:2:2 w labels boxed offset 0,1, '' w boxes fs solid 0.3 コマンド自体はラベルのみのプロットと、同じファイルを用いた棒グラフのプロットに分かれています。ラベルとして使用されるのはusing(1:2:2)で指定している3つ目の列のものです。ラベルには文字列も指定して表示することも出来ます。 プロットに用いたデータファイル"test01.dat"の中身は以下のようになっています。 1 10 2 9 3 13 4 4 5 5 6 8 7 11 8 14 9 10 棒グラフを例にしましたが、その他のプロット方法でもsplotの三次元プロットでも使うことは出来ます。表示されるラベルの位置を調整するには「offset」を指定するといいようです。ラベルが四角で囲まれているのは「boxed」という指定を入れているためです。 その他、フォントの扱いなどのラベルの表示方法はいろいろとカスタマイズ可能なようです。 その他、gnuplot関連のブログ記事

過去数年に渡る気温変化のデータプロット

イメージ
気象庁のデータダウンロードサービスを利用して、過去数年の気温の変化をグラフにしたものを作ってみました。 取得したデータは以下の通り。 地点 : 長野(長野県) 期間 : 2010/1/1〜2018/12/31 項目 : 日平均気温、日最低気温、日最高気温 グラフに作るに当たってはgnuplotを使用しています。また、データ加工には以下のコマンドを使用しました。 iconv (文字コードをUnicodeに変換) awk (特定の列のみ切り出す。ついでにデータ区切りをスペースに変換) sed (日付部分を扱いやすいようにするため使用) head, tail (先頭数行の削除などに使用) とりあえず、取得したデータをすべてプロットすると以下のようになりました。赤線が日平均気温で、紫の帯の部分は上端が日最高気温、下端が日最低気温を表しています。 さすがに9年分のデータを並べると日付の感覚が狭くなってなってしまいちょっと分かり難いですね。それでも冬と夏で周期的に気温が大きく変化しているのがわかります。 もう少し範囲を狭めてみると以下のようになります。2016/1〜2018/12の3年分になります。 さっきよりは日付の感覚が広くなっているので、月ごとの変化が分かりやすくなったかと思います。 さらに範囲を狭めてみます。データ2018年の1年間分です。 毎月の変化を見るなら、間隔としてはこれくらいがちょうどよさそうです。 さて、グラフからは2月の中盤くらいから徐々に寒さが緩んでくるように読み取れます(あくまでも過去のデータの話で、今年がどうなるかは分かりませんが)。 気象庁のデータダウンロードからは平年値も取得することが出来るので、過去の傾向を読み取るならそっちでグラフを作った方がいいでしょう。

gnuplotでシステム側のコマンドを使う、コマンドの実行結果を取得する方法(system)

イメージ
gnuplotでは 「system」 というコマンドを使用することで、システム側のコマンドを実行することが出来ます。 例えば、gnuplotをインタラクティブモードで使っているときに、フォルダ内のファイルを確認するという使い方が出来ます。データファイルをプロットする時にフォルダ内のファイル名を確認したい時に便利かと思います。 使えるコマンドについてはgnuplotを実行しているシステム(OS)に依りますが、ここではLinux(Ubuntu 18.04 LTS)上で実行しているものとして話を進めることにします。 systemコマンドの実行例 systemコマンドの実行方法 フォルダ内のファイルを「ls」コマンドで確認したい場合は、systemコマンドを用いて以下のように書きます。 gnuplot> system "ls" コマンドの実行結果を取得する方法 上記の方法ではコマンドの実行結果は画面上に出力されますが、これを文字列として変数に取得することも出来ます。この場合、systemコマンドでは括弧を付けて以下のように記述します。 gnuplot> d = system("date") (dという変数にdateコマンドの出力結果を入れる) これをグラフタイトルにするには gnuplot> set title d gnuplot> plot sin(x) というようにすればよいでしょう。   フォルダ内のファイル名を取得しプロットに利用する 応用的な使い方として、フォルダ内のファイル名を取得してデータプロットに使う方法を説明していきます。話としては以下の記事に関連するものです(wordやwords関数の使い方はその記事を読んで下さい) 。 gnuplotのplotでforループを使った活用方法(その1) フォルダ内に以下の5つのファイルがあるものとします。 「001.dat, 002.dat, 003.dat, 004.dat, 005.dat」 これをまとめてプロットする場合、以下のようなコマンドとなります。 gnuplot> f = system("ls *.dat") gnuplot> fi...

スポンサーリンク