🌱

PythonのCalmapを使ってトレーニング記録を可視化する

2022/10/31に公開

はじめに

普段体調を整えるために筋トレやジョギングをしており、それぞれアプリに運動が記録されているのですが、githubみたいなカレンダー(草)にして確認するとやる気が出るかな?と思って可視化してみることにしました。

自作しようと思ったらちゃんと calmap というものが作られていたので使ってみます。

実装

上の公式ドキュメントに従って、yearplot を使ってデータを描画しています。雰囲気このような実装です。

# time series の読み込み (走った日付と距離)
data = pd.read_csv(args.data, index_col=0, parse_dates=True)
events = data.km
calmap.yearplot(events, year=2022, daylabels="MTWTFSS",
                fillcolor="grey", linewidth=0.1)
plt.savefig(args.output, bbox_inches="tight")
plt.close()

データ

筋トレ(2022年9月より)とジョギング(2022年1月以降のみ)を主な対象としています。サンプルのデータ(というか実際のデータ)はレポジトリに入っています。

  • 筋トレ
    • 2022年9月〜現在まで
    • 筋トレした日だけ1になるデータ(詳しいログもあるが、取るのが面倒なので使わない)、
  • ジョギング
    • 2022年1月〜現在まで
    • Garmin ConnectからCSVでエクスポート可能
    • 主にジョギングした日と距離を使う

可視化した結果

筋トレの可視化です。データが0-1なので、あまり鮮やかじゃなくて工夫した方がいい気がしてきました。

ジョギングのトレーニング可視化です。鮮やかで良いです。

まとめ

そのうち自動化したいです。筋トレはローカルアプリ(iPhone)なので面倒ですが、ジョギングはGarmin Connectなので、Garmin Connectに記録が追加されたらジョギング赤草を最新に更新する、という処理が頑張れば出来そうな気がしています。

今回のレポジトリです。

https://github.com/cocomoff/Calmap-Visualize-MyTraining

Discussion