Googleスプレッドシートで自動追加される時系列データをフィルターしていい感じにグラフを作る方法(グラフの公開方法付き)
timestamp, temperature, humidity, pressure
という列を持つ表があり、API経由で定期的にデータが追加されるようになっている。(ラズピコWから飛んでくる。) データが増えてくるとグラフがぎゅうぎゅうになって困ったので直近7日分のグラフを作成することにした。
もちろん時々自分でグラフの範囲を更新するなんてことは面倒なのでしたくない。
スプシ(スプレッドシート)に備わっている機能だけでなんとかならないものか...
→FILTER関数でうまいこといくらしい
手順(セルの番号とかはよしなに。)
新しいシートを作る。「直近7日」みたいな名前だと良さそう?
A1:D1が timestamp, temperature, humidity, pressure となっているイメージ。
A2に ={{NOW()-7, NA(), NA(), NA()}; FILTER(Sheet1!A2:D, Sheet1!A2:A>=NOW()-7); {NOW(), NA(), NA(), NA()} } と書くと抽出された表ができる。
FILTERでもってくるデータに加えて、7日前と現在の時刻でデータをN/Aで埋めたものを含めることで、グラフの範囲をいい感じにする
グラフを作成
データ範囲の選択:A1:D のようにすると良い
横軸(X軸)をtimestampにしておく。縦軸はtemperatureなどほしいデータを選択。
横軸の設定(0時に主目盛り、6時, 12時, 18時に補助目盛り の設定方法)
「グリッド線と目盛り」
「主目盛線の表示モード」:「数」
「主グリッドラインと主目盛りの数」:7
「補助目盛線の表示モード」:「数」
「補助グリッドラインと主目盛りの数」:3
https://gyazo.com/fce6ac074790303df51e2552d8148b35
グラフの公開
グラフ右上の3点から公開できる
Cosenseで画像を埋め込みたいときはリンクをそのまま張っても認識されないが、 https://docs.google.com/spreadsheets/......&format=image#.png と 末尾に #.png を付けて「画像だよ〜」と明示してやればうまくいくようだ。