我在使用spyder在python 2.7上绘制大数据时遇到了问题。
X,Y和Z大约是560,000个阵列长度...很多!
# ======
## plot:
fig = plt.figure("Map 3D couleurs")
ax = fig.add_subplot(111, projection='3d')
surf = ax.plot_trisurf(Xs, Ys, Zs, cmap=cm.jet, linewidth=0)
fig.colorbar(surf)
ax.set_xlabel("X")
ax.set_ylabel("Y")
ax.set_zlabel("Z")
ax.set_title("Map 3D couleurs")
#ax.xaxis.set_major_locator(MaxNLocator(5))
#ax.yaxis.set_major_locator(MaxNLocator(6))
#ax.zaxis.set_major_locator(MaxNLocator(5))
fig.tight_layout()
plt.show();
Python回复此帖:
Traceback (most recent call last):
File "C:\Python27\lib\site-packages\matplotlib\backends\backend_qt5.py", line 427, in idle_draw
self.draw()
File "C:\Python27\lib\site-packages\matplotlib\backends\backend_qt5agg.py", line 148, in draw
FigureCanvasAgg.draw(self)
File "C:\Python27\lib\site-packages\matplotlib\backends\backend_agg.py", line 469, in draw
self.figure.draw(self.renderer)
File "C:\Python27\lib\site-packages\matplotlib\artist.py", line 59, in draw_wrapper
draw(artist, renderer, *args, **kwargs)
File "C:\Python27\lib\site-packages\matplotlib\figure.py", line 1085, in draw
func(*args)
File "C:\Python27\lib\site-packages\mpl_toolkits\mplot3d\axes3d.py", line 254, in draw
for col in self.collections]
File "C:\Python27\lib\site-packages\mpl_toolkits\mplot3d\art3d.py", line 580, in do_3d_projection
PolyCollection.set_verts(self, segments_2d)
File "C:\Python27\lib\site-packages\matplotlib\collections.py", line 842, in set_verts
self._paths.append(mpath.Path(xy, codes))
MemoryError
你有想法在python 2.7上解决这个问题。 可能是其他库,函数......还是停止使用python?!
答案 0 :(得分:2)
您是否需要长度560'000
数组的详细信息量?如果没有,您可以使用例如:
n = 1000 # sample every n-th data point
surf = ax.plot_trisurf(Xs[::n], Ys[::n], Zs[::n], cmap=cm.jet, linewidth=0)
答案 1 :(得分:-1)
尝试部分读取文件,不要一次设置数据 例如,在一行中只放一个数据 然后读取元组(x,y,z)并绘制并重复