0.001秒単位の時系列分析グラフを表示したい
【質問】Python3.7の時系列分析で0.001秒単位でグラフを表示させることはできるのでしょうか?
初心者です。
加速度を高速で取得したCSVデータの、傾向を見たいため
jupyter notebook(Python3.7)で時系列分析を利用しようと考えました。
output1.csv 〜 output10.csv という、1つのcsvを10分割したcsvをつなげてグラフ化させ、
その傾向を時系列分析を利用したグラフを表示させようというコードを打ってみました。
ですが、グラフを表示させてみると、
1秒毎での加速度値みたいな変なグラフが表示されました。
(0.001秒単位毎の加速度の動きを表したグラフを表示したいです)
csvデータ(output1.csvの冒頭)と、グラフは以下のようになります。
(さらに、結果に
赤いバックカラーに大量の文字が表示されました。
(エラー??))
時系列分析で0.001秒単位でグラフを表示させることは可能でしょうか??
もしやり方を知っている方いらっしゃればご教授いただけると幸いです。
よろしくお願い申し上げます。
以下、試したコードと、結果です。
該当のソースコード
import statsmodels.api as sm import pandas as pd import matplotlib.pyplot as plt import numpy as np plt.subplots_adjust(hspace=0.3) plt.figure(figsize=(15, 9)) num_figure = 10 for i in range(1, num_figure+1): df = pd.read_csv('output{}.csv'.format(i)) gFz = pd.Series(df['gFz'], dtype='float') gFz.index = pd.to_datetime(df['time'], format='%S') res = sm.tsa.seasonal_decompose(gFz, freq=5) plt.subplot(411) plt.plot(gFz, lw=.6, c='darkblue') plt.title('observed') plt.subplot(412) plt.plot(res.trend, lw=.6, c='indianred') plt.title('trend') plt.subplot(413) plt.plot(res.seasonal, lw=.6, c='indianred') plt.title('seasonal') plt.subplot(414) plt.plot(res.resid, lw=.6, c='indianred') plt.title('residual')
このように、滑らかではなく、カクカクしたグラフになってしまいます…
また、以下の文章が赤のバックカラーで表示されました。(問題はあるのしょうか?)
/Users/username/miniconda3/lib/python3.7/site-packages/ipykernel_launcher.py:11: MatplotlibDeprecationWarning: Adding an axes using the same arguments as a previous axes currently reuses the earlier instance. In a future version, a new instance will always be created and returned. Meanwhile, this warning can be suppressed, and the future behavior ensured, by passing a unique label to each axes instance. # This is added back by InteractiveShellApp.init_path() /Users/username/miniconda3/lib/python3.7/site-packages/ipykernel_launcher.py:15: MatplotlibDeprecationWarning: Adding an axes using the same arguments as a previous axes currently reuses the earlier instance. In a future version, a new instance will always be created and returned. Meanwhile, this warning can be suppressed, and the future behavior ensured, by passing a unique label to each axes instance. from ipykernel import kernelapp as app /Users/username/miniconda3/lib/python3.7/site-packages/ipykernel_launcher.py:19: MatplotlibDeprecationWarning: Adding an axes using the same arguments as a previous axes currently reuses the earlier instance. In a future version, a new instance will always be created and returned. Meanwhile, this warning can be suppressed, and the future behavior ensured, by passing a unique label to each axes instance. /Users/usernameF/miniconda3/lib/python3.7/site-packages/ipykernel_launcher.py:23: MatplotlibDeprecationWarning: Adding an axes using the same arguments as a previous axes currently reuses the earlier instance. In a future version, a new instance will always be created and returned. Meanwhile, this warning can be suppressed, and the future behavior ensured, by passing a unique label to each axes instance.
試したこと
・Pythonで時系列分析の練習(6)トレンド、季節性、残差に分解
・Pandasで時間や日付データに変換するto_datetime関数の使い方
・Python実務データ分析でよく使う手法(分析手法編)
上記3つのサイトを参考にコードを書きました。
res = sm.tsa.seasonal_decompose(gFz, freq=5)
のfreq(周期)の意味はまだいまいちよくわかってないです…
OS環境
macOS Catalina 10.15
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。