8-4. plot_Acc.py

(time, acceleration_longitudinal,acceleration_lateral,acceleration_dorso_ventral) を含むデータ(data.csv)*読み込み、以下のような3軸の加速度の生波形とそれを元に計算したODBAの時系列グラフを表示するツールです。

*BiPでOpenデータとなっているKatsufumi Sato (Atmosphere and Ocean Research Institute, University of Tokyo) 提供のオオミズナギドリのデータ (title: 9B41870_TS-AxyTrek_Movebank_YNo.6_release20210824) の一部を使用しています。

下記のコードをテキストエディタにコピーし、plot_Acc.pyという名前で保存します。

import pandas as pd
import matplotlib.pyplot as plt
<h1>CSVファイルの読み込み</h1>
data = pd.read_csv('data.csv')
<h1>日時情報をpandasのdatetime型に変換</h1>
data['time'] = pd.to_datetime(data['time'])
<h1>ODBAの計算</h1>
data['ODBA'] = (
data['acceleration_longitudinal'].abs() +
data['acceleration_lateral'].abs() +
data['acceleration_dorso_ventral'].abs() - 9.8
)
<h1>グラフの作成</h1>
fig, (ax1, ax2) = plt.subplots(2, 1, sharex=True, figsize=(10, 8))
<h1>加速度のプロット(上側のサブプロット)</h1>
ax1.plot(data['time'], data['acceleration_longitudinal'], color='black', label='Longitudinal Acceleration')
ax1.plot(data['time'], data['acceleration_lateral'], color='green', label='Lateral Acceleration')
ax1.plot(data['time'], data['acceleration_dorso_ventral'], color='blue', label='Dorso-Ventral Acceleration')
ax1.set_ylabel('Acceleration (m/s²)')
ax1.set_title('Acceleration Components and ODBA over Time')
ax1.grid(True)
ax1.legend(loc='upper left')
<h1>ODBAのプロット(下側のサブプロット)</h1>
ax2.plot(data['time'], data['ODBA'], color='red', label='ODBA', linestyle='--')
ax2.set_ylabel('ODBA (m/s²)')
ax2.set_xlabel('Time')
ax2.grid(True)
ax2.legend(loc='upper left')
<h1>レイアウトの調整と表示</h1>
plt.tight_layout()
plt.show()

実行方法

使用するPython環境に必要なライブラリ(pandas, matplotlib)をインストールしてください。

pip install pandas matplotlib

コマンドラインでスクリプトを保存したディレクトリに移動し、以下のコマンドを実行します。

python plot_Acc.py