Pythonと本と子供と雑談と

いつからはじめても遅くない

【Python】Dashで梅雨のデータを可視化してみた【Dash】

今週のお題「雨の日の楽しみ方」

f:id:mazarimono:20190608002521p:plain

今日は関東などで梅雨入りしたことが発表されていました。

最近、会社を本格稼働させようかということで、会社ブログをスタートさせました。

データ活用を主とした記事を書いていこうということで、旬なネタを可視化してどうこうしていくかという感じのことを考えています。

なのでherokuも有料です。ていっても月7ドルですがw。安くて良い。



データは気象庁様のものです

今回作成したのは梅雨がいつからいつまでかというのと、その雨量のデータが気象庁様に置いてあったので、そのデータを使いました。何か面白いネタないかなぁと思ってて梅雨かなぁと思い、データを加工し可視化を作るのに1日かかって、結構疲れました。でもそろそろ梅雨入りが近づいているし、その前にということでガーっと急いでやり、ブログ記事も書き終わり読み返し、一応間違いチェックして今朝10時ごろに出せました。その後関東の梅雨入りが発表されたようですが、私の住む関西は梅雨入りしていないのでセーフのはずです。

www.data.jma.go.jp

あるデータはこんな感じです。

f:id:mazarimono:20190608000203p:plain

これを「ごろ」とかを消してdatetimeを使えるように加工して、最後に利用した11地域のデータをドッキングして完成です。 気になったのは梅雨入りがないのに梅雨明けがあったり、梅雨入りがあるのに梅雨明けがなく、またその次の年は平気で梅雨入りしているといったところです。今回はこんなデータの処理は放置ということで、年や地域によっては変なグラフになりますが、ちょっとそこまで考える時間がありませんでした。

datetimeを使っているのですが、全ての年の月と日を比較するような(異なる年の月日)時って、どのようにデータを扱うと良いのかってのが全然わかりませんでした。昔は列に月と日だけを抜き出したものを作ってやっていましたが、うーんどうもそれも違う感じがするなぁということで、今回は使われていない年に(1900年)全部の年のデータを放り込んで、丸っとグラフにしてみました。作成したのは以下のグラフです。

梅雨入り梅雨の終わりを見るためのDashアプリ

アプリの解説

アプリには4つのグラフがあり、上の3つが上にあるラジオボタンと年のスライダーで選択したもののデータが可視化されるグラフです。一番下のものは横にあるドロップダウンで選択した年の各地域の梅雨入り梅雨終わりのデータを見られるものです。

こんな感じでまぁまぁたくさんのデータをカチカチ切り替えながら見られて、ちょっとおもしろいものができたなぁと思っています。

技術的にチャレンジングだったのは、最初のグラフをこれまで使っていなかったplotly_expressを使って書いたことと、最後のガントチャートをplotly.figure_factoryを使って書いた点です。plotly_expressはやはり細かいところを触ろうとすると、ちょっと難しいところがあったりします。例えば一つのデータフレームを使って書くことが前提なので、二つのデータフレームを使ったりするのは駄目です。またちょっと細かいところを弄りたいなぁ見たいなのは、出来ません。でもこんなことがこんな短時間でできるのか!!という感じのことができるので、今後はかなり使うことになると思います。ガントチャートは使いたいナンバーワングラフでチャンスがあると使ってしまうのですが、dash上ではサイズが自動的に調整されないという難点がありますね。これはplotly.figure_factoryってのの難点かもしれません。plotly_expressとDash的な記事はqiitaに来週でも書きたいところです。

コード的には以下のgithub先のようになっています。今後はこのherokuに可視化なんかを載せていきたいなと思っています。

github.com

次の展開

次は全然違うことに飛ぶか、もうちょっとデータ分析っぽい方にもっていくかは考え中です。3-5月のお天気データなんかを入れて、梅雨入りを予想する機械学習とかも面白そうですが、データを取るのが面倒かもしれんなぁと思ったり。

ちょっと読んでみたいw

あなたの人生を変える雨の日の過ごし方

あなたの人生を変える雨の日の過ごし方