[fitbit] 5.Fitbit APIで所定の期間(1d,1w,15m)の歩数を取得して棒グラフで表示

fitbit

はじめに

Fitbitは腕に装着するタイプのスマートウォッチで、心拍数、歩数、睡眠などの健康データをトラッキングする便利なデバイスです。本記事では、Fitbit APIを活用して、日次(1d)、週次(1w)、月次(1m)の期間ごとの歩数データを取得し、Pythonのmatplotlibライブラリを使って視覚的に棒グラフとして表示する方法を解説します。Fitbit APIの基本的な使い方から、データの取得方法、そして効果的なグラフ表示までのプロセスを段階的に説明していきます。

手順

APIの登録など

その1を参照してください。

[fitbit] 1. PythonでFitbit APIを使ってデータ取得 その1 アプリの登録とtokenの取得
fitbitとは、心拍数、歩数や睡眠をトラッキングするために腕に着用するタイプのスマートウォッチです。日々の健康状態を把握するのにとても役立っています。ここでは、Fitbit APIを使ってデータを取得するために、アプリの登録からtokenの取得まで解説します。

fitbit-pythonのインストールなど

その2を参照してください。

[fitbit] 2. PythonでFitbit APIを使ってデータ取得 その2 fitbit-pythonによる睡眠データの取得とmatplotlibによる表示
fitbitとは、心拍数、歩数や睡眠をトラッキングするために腕に着用するタイプのスマートウォッチです。日々の健康状態を把握するのにとても役立っています。ここでは、アプリの登録からtokenの取得までを解説したその1の続きとして、Fitbit APIを使って睡眠データを取得してmatplotlibで表示するところまで解説します。

モジュールのインポート

バージョン

APIの認証

CLIENT_ID, tokenなどを定義

その1で取得したCLIENT_IDとCLIENT_SECRETとtoken.txtをここで使います。token.txtは実行ファイルと同じ場所に置いておきます。

認証

fitbit.Fitbit()により、認証を行います。updateToken関数はtokenの更新用の関数でrefresh_cbupdateTokenとすることでtokenが期限切れの際に随時更新してくれるようになります。

1ヶ月の歩数データの取得と表示

1ヶ月の歩数データの取得

time_series('activities/steps')により歩数データが得られます。base_dateとend_dateにそれぞれ、取得したい日の最初と最後の日を設定します。

データフレームに変換

pd.DataFrame.from_dict によりデータフレームに変換します。

棒グラフで表示

時刻データをpd.to_datetime()にdatetime形式にした後で棒グラフで表示すると以下のようになります。

1週間の歩数データの取得と表示

1ヶ月の場合と同様の方法で1週間分の歩数データの取得と表示ができます。

1日の歩数データの取得と表示

1日の歩数データの取得

1日の歩数データを15分刻みで取得するには、intraday_time_series(‘activities/steps’)関数を使用します。base_dateで取得したい日付を指定し、detail_levelでデータの時間間隔を設定します。また、start_timeとend_timeでそれぞれデータ取得の開始時間と終了時間を指定できます。

データフレームに変換

pd.DataFrame.from_dict によりデータフレームに変換します。

日付つき時刻データの作成

棒グラフで表示

コードをダウンロード(.pyファイル)

コードをダウンロード(.ipynbファイル)

まとめ

本記事では、Fitbit APIを使って日次、週次、月次の歩数データを取得し、matplotlibで棒グラフとして視覚化する方法を紹介しました。Fitbit APIの認証設定から始まり、特定期間のデータ取得方法、そしてグラフ化のためのコードまで詳しく解説しています。これらの技術を活用することで、自分の健康データを視覚的に把握し、より効果的な健康管理が可能になります。Pythonを使ったデータ分析の基礎としても役立つ内容となっていますので、ぜひ実践してみてください。

参考

Overview — Python-Fitbit 0.3.0 documentation
Fitbit Development: Activity
You'll fit in here. Using JavaScript, CSS, and SVG, developers now have a fast, easy way to build apps and clock faces f...

コメント