在性能方面,以下代码段在mayavi
中绘图时对我来说非常合适。
import numpy as np
from mayavi import mlab
n = 5000
x = np.random.rand(n)
y = np.random.rand(n)
z = np.random.rand(n)
s = np.sin(x)**2 + np.cos(y)
mlab.points3d(x, y, z, s, colormap="RdYlBu", scale_factor=0.02, scale_mode='none')
但是mayavi
开始窒息n >= 10000
。 matplotlib
,(Axes3D.scatter
)中类似的3d绘图例程同样与这个大小的数据集斗争(为什么我开始研究mayavi
)。
首先,我遗漏的mayavi
(平凡或不平凡)中有什么东西可以使10,000点的散点图更容易渲染吗?
其次,如果上面的答案是否定的,那么还有哪些其他选项(在mayavi
或不同的python包中)我必须绘制如此大小的数据集?
我标记了ParaView只是为了添加渲染,我在ParaView中的数据变得非常流畅,让我相信我不会做任何不合理的事情。
更新
将模式指定为2D字形对于加快速度有很大帮助。 E.g。
mlab.points3d(x, y, z, s, colormap="RdYlBu", scale_factor=0.02,
scale_mode='none', mode='2dcross')
可轻松支持高达100,000点
如果有人能够添加一些关于如何加速3D字形渲染的信息,那仍然会很好。