はじめに
fitbitとは、心拍数、歩数や睡眠をトラッキングするために腕に着用するタイプのスマートウォッチです。ここでは、Fitbit APIを使って一月分の睡眠効率を取得し、seabornのヒートマップで表示する方法を解説します。
手順
APIの登録など
その1を参照してください。
fitbit-pythonのインストールなど
その2を参照してください。
モジュールのインポートなど
バージョン
APIの認証
CLIENT_ID, tokenなどを定義
その1で取得したCLIENT_IDとCLIENT_SECRETとtoken.txtをここで使います。token.txtは実行ファイルと同じ場所に置いておきます。
認証
fitbit.Fitbit()
により、認証を行います。updateToken
関数はtokenの更新用の関数でrefresh_cb
に updateToken
とすることでtokenが期限切れの際に随時更新してくれるようになります。
1ヶ月分のデータの取得
日付の設定
2021-10-01と2021-10-31の日付をそれぞれdatetime形式で作成します。
睡眠データの取得
client.time_series()によって睡眠データを取得します。base_dateとend_dateに先ほど作成した日付を入れます。
[‘dateOfSleep’]で取得したデータの日付を調べると、リストの最初に’2021-10-31’のデータ、最後に ‘2021-10-01’のデータが入っていることがわかります。
睡眠データから睡眠効率の抽出
睡眠効率は”efficiency”の値となります。この睡眠効率はアプリで閲覧できる睡眠スコアとは違うもののようです。睡眠データリストの中から、睡眠効率のみを取り出し、睡眠効率リストを作成します。
リストの要素数は31なので1月分のデータが得られていると思われます。
カレンダーの形式に整形
カレンダー形式にするため、np.hstack()でnanの配列を前後に結合し、reshapeで(6,7)の形状にします。
カレンダーの日付の作成
上のデータと同様にして、日付のデータも作成します。
カレンダー形式のヒートマップを表示
睡眠効率データをseabornのヒートマップで表示します。annot=dayssとすることで各セルに日付が表示されます。なお、nanの位置には何も表示されません。
ax.set_xticklabelsで曜日を設定します。
各セルにデータを表示
annot=Trueとすることでデータの値がヒートマップの各セルに表示されます。
コードをダウンロード(.pyファイル) コードをダウンロード(.ipynbファイル)
コメント