pandas
の.csvからデータを取り出してmatplotlib.pyplot
とプロットしました。私のデータの日付/時刻形式は5分ごとですが、毎日1つのデータポイントを作成するために1日以上の時間を統合する必要があります。0またはモジュロでscipy cumtrapz()除算
私はこのエラーを取得しておいてください。
Traceback (most recent call last):
File "integrating.py", line 25, in <module>
plt.plot(times, integ)
File "/usr/local/lib/python3.6/site-packages/matplotlib/pyplot.py", line 3317, in plot
ret = ax.plot(*args, **kwargs)
File "/usr/local/lib/python3.6/site-packages/matplotlib/__init__.py", line 1898, in inner
return func(ax, *args, **kwargs)
File "/usr/local/lib/python3.6/site-packages/matplotlib/axes/_axes.py", line 1406, in plot
for line in self._get_lines(*args, **kwargs):
File "/usr/local/lib/python3.6/site-packages/matplotlib/axes/_base.py", line 407, in _grab_next_args
for seg in self._plot_args(remaining, kwargs):
File "/usr/local/lib/python3.6/site-packages/matplotlib/axes/_base.py", line 395, in _plot_args
seg = func(x[:, j % ncx], y[:, j % ncy], kw, kwargs)
ZeroDivisionError: integer division or modulo by zero
私は、下の配列を使用する場合、それは動作しますので、私は、書式設定の問題を疑います。 datas
を配列に変換しようとしましたが、さらに追求する価値があるかどうかはわかりません。私はまた、データのこのセクションにゼロが含まれていないことを知っているので、なぜ私にこのことを伝えているのか正確には分かりません。
ご迷惑をおかけして申し訳ありません。私は別の方向を取る必要があっても、実際にそれを働かせたいだけです。ありがとう!
後のCSVから引き出された私のデータの形式は次のとおりです。
Data
367 3
368 4
369 5
370 5
371 6
372 7
373 8
374 8
375 9
376 10
コード:
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
import scipy
from scipy import integrate
file = pd.read_csv("Compiled.csv",parse_dates=['Date/Time'])
times = file.loc[367:432, ['Date/Time']]
datas = file.loc[367:432, ['Data']]
#times = [1,2,3,4,5,6,7,8,9]
#datas = [1,2,3,4,5,0,3,2,1]
plt.plot(times, scipy.integrate.cumtrapz(datas, x=None))
plt.show()
ソリューション:動作するはずです何
times = datas['Date/Time'].loc[367:532]
integ = scipy.integrate.cumtrapz(datas['Data'].loc[366:532].values, x=None)
plt.plot(times, integ)
スタックトレースを含む完全なエラーメッセージを投稿してください。 – user2357112
機能の不幸な名前 – JoshuaRLi
一般に、SciPy関数はPandas DataFramesを扱うように設計されていないので、それらの動作は予測できません。 'cumtrapz'に渡す前にデータをnumpy配列に変換してください。配列の形状を確認してください。 'cumtrapz'は多次元配列を受け取り、' axis'引数を使ってどの軸を統合するかを選択します。 –