【发布时间】:2012-01-27 17:15:14
【问题描述】:
我正在使用 matplotlib 在 x 轴上绘制带有点 ([0,0,0],[0,0,1],[0,0,2],...[255,255,255]) 的图形为此我正在使用列表:
from mpl_toolkits.mplot3d import Axes3D
x=[]
for i,j,k in product(xrange(256), repeat=3):
x.append([i,j,k])
y=[]
for count in x:
y.append(probability[count]) # this is how my probability array is stored
pylab.figure(0)
pylab.plot(x,y,'b')
pylab.show()
这个想法是我从之前的帖子中借来的。我是python新手,所以请帮忙。问题是上面的代码给出了“内存错误”。有人可以提供一种将元素附加到“x”的有效方法
【问题讨论】:
-
问题是上面的代码给出了内存错误。那么,有人可以建议一种将元素附加到 x 的有效方法或其他一些有效的绘图方式
-
您正在创建大约 256^3 * 4 字节的对象,更不用说在
append()中创建的每个列表的开销了。仅将 Python 用于仅占用 如此 大量内存的事情才实用。 为什么你这样做有什么具体原因吗?有没有比遍历所有 1600 万个值更有效的方法? -
原因是,我必须在图表上绘制这么多点
-
请注意,您可能不需要在图表上绘制那么多点。你需要绘制足够多的图来捕捉数据的重要特征,包括不太重要区域的波动,我非常非常怀疑你需要 17M 数据点来实现这一点。如果您坚持这样做,那很好,但是 matplotlib 可能不适合您。我预计,在此之前你会开始遇到 Agg 渲染限制。
标签: python numpy scipy matplotlib