no image

Fitbitの心拍数データを可視化してみた。

1. はじめに

はしへいです。Fitbit Charge2を身につけて1ヶ月程生活した際の心拍数データを可視化してみました。

心拍数や歩数、就寝時間などはFitbitのアプリからも確認可能です。今回はアプリでは確認出来ない、より長期のデータを可視化しています。

2. Fitbitとは

2-1. Fitbitで取得できるデータ

Fitbitはアクティビティログなどを記録できる時計型のデバイスです。 iOS/Androidにアプリがあり、アプリでは移動歩数や心拍数、睡眠時間などを記録・確認できます。 1日分を確認する分にはアプリから確認するだけで十分なデータが確認できます。 FitbitにはAPIが提供されており、ここから取得できるデータの種類と取得方法など詳細な手順を確認する事ができます。

2-2. 心拍数データ

私の2018年9月の心拍数データは以下の様に記録されていました。
一般的な男性がとる心拍数の範囲は1分間に60-100回の様ですので、日中時間帯は概ね範囲に収まっています。
ただ睡眠中〜寝起きは心拍数が比較的低いです。私は冷え性なのですが、関連性があるのかも知れません。

項目
データ数 44507
単位単位 1分
開始日時 2018-09-01 00:00:00
終了日時 2018-10-06 15:58:00
最頻値 54
最小値 46
最大値 182
分散 231
標準偏差 15.2
平均値 71
中央値 71

期間中のデータを散布図で示すと下図の様になります。比較的毎日同じ様なサイクルと波形を示している様にみられます。毎日それなりに心拍数の変化がある様です。

上の散布図では朝も昼も夜も同じ様に表現したので実際に寝ている時は50付近なんだろうと思いつつ、視覚的にもう少しわかりやすく確認する事にしました。

私は夜勤など無い日は23:00-06:30頃に寝ていますので、寝ている間は心拍数が下がる傾向にある事が確認できました。逆に昼間は心拍数がずっと高い傾向にあるので、仕事中にリラックスできる時間を短くても取れる様に意識した方が良さそうです。

3. 心拍数データを取得するPythonプログラム

今回利用した心拍数を取得するPythonプログラムはGithubへアップしています。
基本的にはFitbitのAPIを呼び出すだけのプログラムです。日時の文字列を作成し、繰り返しFitbitのデータを取得した上でcsv形式でデータを書き出しています。

尚Fitbit APIを利用するにはAPIを利用するためのアカウント登録、API経由でのデータ参照への許可設定、ローカルPCにFitbit API/Python環境を準備する必要があります。またFitbitのAPI呼び出しには時間当たりの回数制限があるとのことで、この辺りについて触れられているページURLもPython sourceに記載しています。