Fitbitは人気のフィットネストラッカーで、毎日の活動量や睡眠の質を記録してくれます。このデータを分析・可視化することで、自分の睡眠パターンを把握し、生活習慣の改善に役立てることができます。
この記事では、PythonとGoogle Colabを使ってFitbitの睡眠データをグラフ化する方法を解説します。プログラミングの知識がなくても、サンプルコードを実行するだけで簡単にできるので、ぜひお試しください。
こちらの記事もおすすめ
Fitbit APIの登録方法
Fitbit APIを使用すると、自分のアプリケーションからFitbitのユーザーデータにアクセスできるようになります。この記事では、初心者向けにFitbit APIの登録方法を詳しく解説します。こちらの記事もおすすめFitbit開発者アカ...
Fitbit APIの認可フロー
Fitbit APIを使用してユーザーデータにアクセスするには、OAuth 2.0認可フレームワークに従って安全に認可を行う必要があります。この記事では、Fitbitが推奨するPKCEを使用した認可コード付与フローについて詳しく解説します。...
手順
- Google Colabでノートブックを新規作成します。
- Fitbit APIの認証情報を取得します。(
CLIENT_ID
,CLIENT_SECRET
,TOKEN_FILE
) - 下記のサンプルコードをノートブックにコピペします。
- 認証情報とデータ取得日を入力し、全てのセルを実行します。
- グラフが表示されれば完了です。分かりやすく睡眠の状態が可視化されているはずです。
サンプルコード
import fitbit
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
# 認証情報を入力
CLIENT_ID = '****'
CLIENT_SECRET = '****'
TOKEN_FILE = "token.json"
# トークンファイルを読み込み
with open(TOKEN_FILE) as f:
TOKEN_DICT = json.load(f)
ACCESS_TOKEN = TOKEN_DICT['access_token']
REFRESH_TOKEN = TOKEN_DICT['refresh_token']
# Fitbitクライアントを初期化
client = fitbit.Fitbit(
CLIENT_ID,
CLIENT_SECRET,
access_token=ACCESS_TOKEN,
refresh_token=REFRESH_TOKEN
)
# 睡眠データを取得する日付を指定
DATE = "2024-03-09"
data_sleep = client.sleep(DATE)
# 詳細な睡眠データを取得
data_sleep_levels = data_sleep["sleep"][0]["levels"]["data"]
df_sleep_levels = pd.DataFrame.from_dict(data_sleep_levels)
df_sleep_levels.index = pd.to_datetime(df_sleep_levels["dateTime"])
# 睡眠レベルを数値に変換
sleep_level_map = {"wake":3, "rem":2, "light":1, "deep":0}
df_sleep_levels["level_int"] = df_sleep_levels["level"].map(sleep_level_map)
# グラフを描画
fig, ax = plt.subplots(figsize=(16,12),dpi=130)
ax.step(df_sleep_levels.index, df_sleep_levels["level_int"], "-", where="post", lw=2)
# 軸の設定
ax.xaxis.set_major_locator(mdates.AutoDateLocator())
ax.xaxis.set_major_formatter(mdates.ConciseDateFormatter(mdates.AutoDateLocator()))
ax.set_yticks(range(4))
ax.set_yticklabels(["Deep","Light","Rem","Wake"])
ax.set_xlabel("Time")
ax.set_ylabel("Sleep level")
plt.savefig("sleep_analysis.png")
plt.show()
解説
- Fitbit APIにアクセスするために、
fitbit
ライブラリを使用します。事前にpip install fitbit
でインストールしておいてください。 - 認証情報(
CLIENT_ID
,CLIENT_SECRET
,ACCESS_TOKEN
,REFRESH_TOKEN
)はFitbit開発者サイトで取得する必要があります。 client.sleep(DATE)
で指定した日付の睡眠データを取得します。- 取得したデータをDataFrameに変換し、グラフ用に加工します。
plt.subplots
で新しいグラフを作成し、ax.step
で睡眠レベルの時系列データをプロットします。- X軸は時刻、Y軸は睡眠レベル(深い睡眠〜浅い睡眠〜REM睡眠〜覚醒)を表しています。
plt.savefig
とplt.show
でグラフを保存・表示します。
ぜひ自分のFitbitデータで試してみてください。睡眠の質や生活リズムの改善に役立つはずです。コードや手順で不明な点があれば、気軽にコメントで質問してくださいね。
▼ Google Colabノートブック
Fitbitの睡眠データ可視化.ipynb
Google Colaboratory
以上が、Fitbitの睡眠データを可視化する方法の解説記事になります。プログラミング初心者でも分かりやすいよう、丁寧に手順を説明するように心がけました。実際に利用できるGoogle Colabのノートブックも用意したので、すぐに試していただけると思います。
Fitbit Development: Web API
You'll fit in here. Using JavaScript, CSS, and SVG, developers now have a fast, easy way to build apps and clock faces for Fitbit OS.
リポジトリ
GitHub - Sunwood-ai-labs/fitbit-python-analyzer
Contribute to Sunwood-ai-labs/fitbit-python-analyzer development by creating an account on GitHub.
コメント