ミスチル30周年どれだけ盛り上がっているか確認してみた

ミスチルが **2022年5月10日にデビュー30周年！**
何かやりたいなと思い、Mr.Children x Ftibit のネタ投稿です。
私が過去に参加したライブのどの曲の時に一番盛り上がっていたのか？
Ftibit APIを使って自分の心拍数で確認してみました。
自分の心拍数なのであくまで個人的な見解です(^^;)

Qiita的には Python x matplotlib グラフ表示にチャレンジしてみました編です(^^)

## 目次

私が運よく参加できたライブは以下の5つ。平常時も加えて6つの心拍数で比較してみます。

* Thanksgiving 25（東京ドーム）
* Thanksgiving 25（広島 エディオンスタジアム）
* Against All GRAVITY（愛知 ナゴヤドーム）
* 半世紀へのエントランス（福岡 PayPayドーム）
* 半世紀へのエントランス（神奈川 日産スタジアム）
* 平常時

では、さっそくいきます！

### Thanksgiving 25（東京ドーム）

2017年6月29日：東京ドーム参加

以下が当日の私の17時から21時までの心拍数のグラフです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/188544/8fa20c9b-3559-3ad1-bfa2-50670188b4a2.png)

ピークの山が3つくらいありますね。
一番のピークは

```
time 18:55:00
value 152
```

です。
その時の曲は、、、

**innocent world**

です！

お気づきかもしれませんが、曲はその日の詳細なタイムテーブルがないので、セットリストから想像しています。
細かい根拠はお答え出来ません(_ _)

では、どんどんいきます！

### Thanksgiving 25（広島 エディオンスタジアム）

2017年8月26日：広島 エディオンスタジアム参加

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/188544/7dc54a7e-90e4-d635-7054-e6e8a7ee68e0.png)

今回は分かりやすいですね。
一番のピークは

```
time 20:23:00
value 147
```

です。
その時の曲は、、、

**終わりなき旅**

です！
アンコールの最後の曲でした。
その後、極端に心拍数が落ちているのもうなずける。

### Against All GRAVITY（愛知 ナゴヤドーム）

2019年5月25日：愛知 ナゴヤドーム参加

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/188544/b346ba9d-b8f8-99fc-3bb9-a70827c765d8.png)


一番のピークは

```
time 19:13:00
value 152
```

です。
今回は中盤にピークがあったようです。
その時の曲は、、、

**Worlds end**

です！
なるほどなるほど。
Worlds end は盛り上がりますね。


### 半世紀へのエントランス（福岡 PayPayドーム）

2022年4月23日：福岡 PayPayドーム参加

いよいよ**30周年ライブ**、運よく参加できた福岡 PayPayドームでの結果です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/188544/dd5e0dbc-2be5-fb68-fcf9-c74d4598dbfc.png)


一番のピークは

```
time 17:31:00
value 169
```

です。
その時の曲は、、、
再び

**innocent world**

です！

見事に比較対象の5つの中で最高の**169**心拍数を記録していました。
ほぼ3年振りで30周年記念ライブということが影響して盛り上がりが最高潮だったのでしょう(^^)

### 半世紀へのエントランス（神奈川 日産スタジアム）

2022年6月12日：神奈川 日産スタジアム参加

いよいよ**30周年ライブ**、運よく参加できた奇跡の2日目！
神奈川 日産スタジアムでの結果です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/188544/218892db-64bb-f478-6493-18cb5f7bfa8f.png)



一番のピークは

```
time 17:37:00
value 142
```

です。
その時の曲は、、、
再び再び

**innocent world**

です！（たぶん...）

30周年記念ライブ2回目ということでちょっと落ち着きが見えた心拍数の数値でした(^^)
ただ、私は **innocent world** が好きなようです（これは事実です）
5つの内、3つが innocenct world という結果でした。

### 平常時

最後に平常時の心拍数です。
特に何もせずグダグダしているとこんな感じ。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/188544/b5954006-f3d8-bfc7-4aff-54e18b69216c.png)

一応、一番のピークは

```
time 20:42:00
value 75
```

です。
最大でも 75 と、半分程度ですね。

## 参考ソース

今回のグラフ表示に使った参考ソースを記載します。
Google Colaboratory で実行しました。
（事前に pip install Fitbit が、必要です）

```python
import fitbit
import matplotlib.pyplot as plt
import matplotlib.ticker as ticker
import pandas as pd
import datetime as dt

# 認証情報の設定
CLIENT_ID =  "XXXXXX"
CLIENT_SECRET  = "xxxxxxxxxxxx"
ACCESS_TOKEN =  "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
REFRESH_TOKEN =  "xxxxxxxxxxxxxxxxxxxxxxxx"

authd_client = fitbit.Fitbit(client_id=CLIENT_ID, client_secret=CLIENT_SECRET, access_token=ACCESS_TOKEN, refresh_token=REFRESH_TOKEN)

# 取得日付の設定
date_list = ["2017-06-29", "2017-08-26", "2019-05-25", "2022-04-23", "2022-06-12", "2022-05-04"]

# グラフ表示時間の設定
x_ticklabels = ["17:00", "18:00", "19:00", "20:00", "21:00"] 
new_x_tick = range(0, 300, 60)
x_time_range = [17, 21]

# 初期化
heart_rate_1sec = {}
heart_rate_1sec_df = {}
new_index = {}

# グラフ初期化
fig = plt.figure(0, figsize=(20, 5))
axes = fig.add_subplot()

# 目盛を内側に表示
plt.rcParams['xtick.direction'] = 'in'
plt.rcParams['ytick.direction'] = 'in'

# X軸設定
axes.set_xlabel("Time")
axes.xaxis.set_ticklabels(x_ticklabels)
axes.xaxis.set_major_locator(ticker.FixedLocator(new_x_tick))

# Y軸設定
axes.set_ylabel("Heart Rate")

for date in date_list:
    # FitbitAPIを使って情報取得
    heart_rate_1sec[date] = authd_client.intraday_time_series("activities/heart", date, detail_level="1min")["activities-heart-intraday"]["dataset"]
    heart_rate_1sec_df[date] = pd.DataFrame.from_dict(heart_rate_1sec[date])

    # 欠損値初期化
    new_index[date] = pd.date_range(heart_rate_1sec_df[date].index[0], heart_rate_1sec_df[date].index[-1], freq='1min')
    heart_rate_1sec_df[date].reindex(new_index[date], fill_value=np.nan)

    # 時間帯を区切るため to_datetime して、該当時間帯のみ抽出
    heart_rate_datetime = heart_rate_1sec_df[date]
    heart_rate_datetime["time"] = pd.to_datetime(heart_rate_datetime["time"])
    now = dt.datetime.now()
    heart_rate_datetime = heart_rate_datetime[
                                              (heart_rate_datetime["time"] >= now.replace(hour=x_time_range[0], minute=0, second=0)) &
                                              (heart_rate_datetime["time"] <= now.replace(hour=x_time_range[1], minute=0, second=0))
                                              ]
    heart_rate_datetime.reset_index(drop=True, inplace=True)

    # グラフにplot
    axes.plot(heart_rate_datetime["value"], label = date)

# 凡例設定
axes.legend(loc='upper right')
```

* CLIENT_ID/CLIENT_SECRET/ACCESS_TOKEN/REFRESH_TOKEN は自身の認証情報を設定してください
* リフレッシュトークンには対応していません(^^;)

FitbitAPIを使うための事前準備やソースについて以下のサイトを大いに参考にさせてもらいました。

https://watlab-blog.com/2021/05/30/fitbit-api/

## 比較結果

最後に6つまとめて表示します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/188544/4502e759-8240-c8c3-5fa5-197c189c4d61.png)


まとめると平常時との心拍数の違いが明らかですね。
**半世紀へのエントランス** が一番の盛り上がりだったこと、5つのライブいずれも盛り上がったことが明らかです(^^)



## まとめ

ミスチル30周年おめでとう！いい記念になりました！！
ミスチルとともにこれからも生きていきます。
以上です。
（matplotlibかなり便利です）

ここまで読んで頂き、ありがとうございました！

2022/06/18 半世紀へのエントランス（神奈川 日産スタジアム）追加