Looker Studio / GAS + LINE Bot で趣味のトレーニングを効率的に可視化した
Looker Studio / Google スプレッドシート / Google Apps Script / LINE Bot で趣味のトレーニングを可視化した
こんにちは、Rehab for JAPAN の ui です。
今回は Looker Studio を使って、趣味のトレーニングの記録を可視化した事例を紹介します。
全体構成図
なぜ可視化するのか?
私のトレーニングの目的は筋肥大です。 デカくなりたいです。
そのためには progressive overload(漸進性過負荷の原則) に則り、トレーニングボリュームを徐々に上げていくことが重要になります。
ボリュームを増やすには、まず 現状のトレーニングボリュームを把握すること が必要です。
自分の使い心地の良い入力インタフェースを追求すると既存のアプリや手書きのノートでは満足できませんでした。
「記録」と「可視化」の環境を徐々に作っていきました。
テーブル定義
まず記録用のデータソースは Google スプレッドシート(以下 GSS)を作成しました。
training_log シート
- 日付: トレーニングした日
- 種目: トレーニング種目
- 回数: reps
- セット
- ウェイト
- total volume: GSS で計算(回数✖️セット✖️ウェイト)
- 箇所: どの部位か(GSSでマスタを作り、種目から紐づけ)
- 月週: GSSで計算(日付から算出)
イメージ
Looker Studio の設定
そのうちに、グラフなどで見やすくしたい。という欲求が出てきたため
training_log
シートをデータソースにして、以下のグラフを作成しました。
月単位の Total Volume グラフ
Looker Studio にはデータソース項目を内部で編集できる機能があります。
それを活用して月ごとのボリュームを集計しました。
- ディメンション:
month
(フィールド追加)
DATETIME_TRUNC(日付, MONTH)
- 指標:
sumtotalvolume
(フィールド追加)
SUM(totalvolume)
部位ごとの月単位 Total Volume グラフ
「今月は胸を強化したい」「先月は脚が少なかった」などを把握するために、部位別集計も追加しました。
フィルタ機能 を利用します。
- ディメンション: 箇所
- 内訳ディメンション: month
- 指標: sumtotalvolume
- フィルタ例: 胸
イメージ
7月に肘を痛めてボリューム下がってるなぁ〜🤔など振り返りができます。
GitHub ライクなトレーニング頻度ヒートマップ
トレーニング頻度をわかりやすくするため、GitHub の草(ヒートマップ)風に可視化しました。
- グラフ種類: ピボットテーブル
- ディメンション: 箇所
- 行のディメンション: 月週
- 列のディメンション: 曜日
CASE
WHEN DAYOFWEEK(日付) = 0 THEN "0:日"
WHEN DAYOFWEEK(日付) = 1 THEN "1:月"
WHEN DAYOFWEEK(日付) = 2 THEN "2:火"
WHEN DAYOFWEEK(日付) = 3 THEN "3:水"
WHEN DAYOFWEEK(日付) = 4 THEN "4:木"
WHEN DAYOFWEEK(日付) = 5 THEN "5:金"
WHEN DAYOFWEEK(日付) = 6 THEN "6:土"
ELSE ""
END
曜日を 0〜6 の数字のままではわかりにくいので、 "0:日"
などに変換しています。
ただし単純に「日」「月」だけにすると並べ替えができないため、数値+曜日の形式にしました。
- 指標:
COUNT_DISTINCT(日付)
- フィルタ: 脚
- 並べ替え:
- 行番号1: 月週
- 列番号1: 曜日
- 条件付き書式: 値が
1
の場合は黄緑に設定
イメージ
週3~4をキープしている
LINE Bot + GAS
最後に、gssへの入力の手間を削減するため、トレーニング中にとっていたメモを入力テキストとして
Google Apps Script(GAS)で解釈し、GSSに転記する仕組みを作成しました。
Webアプリとして公開し、LINE Bot から呼び出しています。
入力フォーマットは以下の通りです。
1行目: 日付
2行目以降: トレーニング内容
### トレーニング内容のルール
種目 {ウェイト}{回数}-{回数}...
ウェイトが変わる場合はスペースを空ける
例えば次の入力:
8/29
ラットプルダウン 45kg15 50kg13 54kg11-10
GSS には以下のように登録されます。
8/29, ラットプルダウン, 15, 1, 45
8/29, ラットプルダウン, 13, 1, 50
8/29, ラットプルダウン, 11, 1, 54
8/29, ラットプルダウン, 10, 1, 54
LINE Bot 側のエンドポイントとして、この GAS を設定しました。
イメージ
Looker Studioの全体イメージ
👉 全体的に「記録 → データ化 → 可視化 → フィードバック」という流れを整え、トレーニングのモチベーションも大きく向上しました。
最後に
今回紹介した仕組みは、
- 入力のハードルを下げる(LINE Bot + GAS)
- データを整理する(GSS)
- 成果を見える化する(Looker Studio)
という流れで、トレーニング管理をより楽にしました。
同じように趣味や学習の記録にも応用できるので、ぜひ試してみてください。
筋トレには不思議な魅力があり、生涯の趣味としても最適です。
また、これは弊社で掲げているテーマのひとつである 「健康寿命の延伸」 にもつながります。
自分自身の活力も筋トレを通じて高めていきたいと思います。
それでは、今日もトレーニング行ってきます!
Discussion