シリアル ポート上のデバイスから 0.5 秒ごとにデータを取得するプログラムを作成しました。次に、データ ポイントを設定する配列にそのデータを追加し、プロットを更新します。1 時間ほど実行されるまではすべて問題なく動作し、その時点でプログラムは応答を停止します。
この配列にサイズ制限があるかどうかは誰にもわかりませんか? 何百万ものポイントになる可能性のあるデータセットを処理する方法について何かアイデアがある場合は、ぜひご意見をお聞かせください。
シリアル ポート上のデバイスから 0.5 秒ごとにデータを取得するプログラムを作成しました。次に、データ ポイントを設定する配列にそのデータを追加し、プロットを更新します。1 時間ほど実行されるまではすべて問題なく動作し、その時点でプログラムは応答を停止します。
この配列にサイズ制限があるかどうかは誰にもわかりませんか? 何百万ものポイントになる可能性のあるデータセットを処理する方法について何かアイデアがある場合は、ぜひご意見をお聞かせください。
以下のコードを使用して、matplotlib に 1,000 万点の単純なグラフを表示させることができました。問題は配列のサイズではないと思われます。
import numpy as np
import matplotlib.pyplot as plt
import random
nsteps = 10000000
draws = np.random.randint(0,2,size=nsteps)
steps = np.where(draws>0,1,-1)
walk = steps.cumsum()
plt.plot(np.arange(nsteps), np.array(walk), 'r-')
plt.title("Big Set Random Walk with $\pm1$ steps")
plt.show()
ある程度の限界があるようです。やってみました
import pylab
import numpy as np
n = 10000000 # my code works fine for n = 1000000
x = np.random.normal(0,1,n)
pylab.plot(x)
pylab.show()
そして、次のエラーが発生しました:
OverflowError: Agg rendering complexity exceeded. Consider downsampling or decimating your data.