我创建了一个程序,每半秒左右从串行端口上的设备检索数据。然后,它将该数据附加到设置数据点的数组中,然后更新绘图。一切都很好,直到它运行了一个小时左右,此时程序停止响应。
有谁知道这个数组是否有大小限制?如果有人对处理可能是数百万点的数据集有任何想法,我很想听听你的想法。
我创建了一个程序,每半秒左右从串行端口上的设备检索数据。然后,它将该数据附加到设置数据点的数组中,然后更新绘图。一切都很好,直到它运行了一个小时左右,此时程序停止响应。
有谁知道这个数组是否有大小限制?如果有人对处理可能是数百万点的数据集有任何想法,我很想听听你的想法。
使用下面的代码,我能够让 matplotlib 显示一千万个点的简单图表。我怀疑问题不在于数组大小。
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.