我创建了一个程序,每半秒左右从串口上的设备检索数据。然后,它将该数据附加到设置数据点的数组,然后更新绘图。一切顺利,直到它运行了一个小时左右,此时程序停止响应。
有没有人知道这个数组是否有大小限制?如果有人对处理可能数百万点的数据集有任何想法,我很乐意听到你的想法。
答案 0 :(得分:1)
使用下面的代码我可以让matplotlib显示一个1000万点的简单图表。我怀疑问题不在于数组大小。
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()
答案 1 :(得分:0)
似乎有一些限制。我刚试过
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.