Googleスプレッド経由しTableauで推移可視化【梅雨の降水量平年比】


  • 要点
    • Googleスプレッドシートを使います。
    • 文字化けを防ぐためにGASの関数を使います。
    • ピボットを使います。

気象庁のテータをGoogleスプレッドで取得します

無償で使えるTableau Publicが備えるGoogleスプレッドシートをデータソースとする機能を試してみました。
これまで、ローカルに保存したデータを使うことが多かったのですが、Googleスプレッドシートを使用できれば、IMPORT関数でWeb上のデータを直接取得→Tableauで可視化という手順が可能になり、利便性が増します。

気象庁の梅雨の降水量平年比のデータを使うことにしました。

※平年比(%)は観測値/平年値と計算します。平年値は、平均気温・降水量・日照時間いずれもひと月別値の30年平均値だそうです。

気象庁のデータをExcelで開いて内容を確認しました。

Googleスプレッドシートが持つIMPORTDATA(関数)を使い取り込みました。

=IMPORTDATA("https://www.data.jma.go.jp/fcd/yoho/baiu/tsuyu_prec.csv")

列名(ヘッダ)の日本語部分が文字化けしました。
utf-8形式でないと文字化けするようです。
困りました。

検索して調べた結果、Google Apps Script(GAS)を使って解消できることがわかりました。

そこで紹介されているスクリプトをGoogleスプレッドシートのスクリプトエディタに貼り付けて使わせて頂きました。

文字化け解消。Tableauに取り込みます

作成した関数importCSVを使って再取り込みです。

=importCSV("https://www.data.jma.go.jp/fcd/yoho/baiu/tsuyu_prec.csv",1)

今度は文字化けせず取得できました。

Tablesu Publicで取り込みます。

取り込んだ直後の状態です。
ただ、2行目に「年」「平年差」とテキストデータが入っており、その列が文字列型になっています。

後で解消できるので、気にせず整数型に変換します。

nullに変わりました。
行単位で消せないようなのですが、後で外すことできるので、可視化に進みます。

ワークシートに移動します。

折れ線グラフを作ります

列に「時間軸」、行に「関東甲信地方」をドラッグすると、自動で折れ線グラフを選択して作成してくれました。

グラフ右下に「1個のNULL」と表示されます。
クリックして「データのフィルター」を選ぶと、nullが除外されます。
これで、取り込み時にあったnull値を外すことができました。

「九州南部」をドラッグすると、そのグラフが追加されます。
ドラッグする際、Y軸左側に上に置くようにすると、同じ画面上にグラフが追加されます。

ピボットを使ってエリア別グラフを作りやすくします

ただ、エリア(地方)別のグラフを全部描くには、エリアの数だけドラッグする必要があります。
その手間を少なくするためにデータソース取り込み画面に戻り、ピボット機能を使って表の体裁を変えます。

以下のような形式に表が変わります。

時間軸 エリア 平年差

ただ、nullがあるため、余計な列ができてしまいます。
(行と違い)列は削除できます。

可視化に使いたい列にnull値が残っていますが、先ほど同様後で外せるのでこのまま進みます。

列に「時間軸」、行に「平年差」、左側のパネルに「エリア」をドラッグすると、エリア別グラフが作成できます。

先ほど同様にnullを外します。

2020年は雨量が多かった

このままでは見にくいので、もう少しいじりました。
平年差(単位%)なので本来の使い方ではないと思うのですが、積み上げ棒グラフに切り替えてみました。

2020年は例年より雨量が多かったことがわかりました。

作業の区切り区切りでファイル→Tableau Publicに保存します。