从性能角度看,在绘制mayavi
时,以下代码段对我来说工作得非常好。Python中10,000+点3D散点图(带快速渲染)
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
开始一次呛。 matplotlib
(Axes3D.scatter
)中的类似3d绘图程序类似地与这种尺寸的数据集挣扎(为什么我首先开始考虑mayavi
)。
首先,mayavi
(微不足道的或不平凡的)中有一些东西我错过了,它会使10,000多个点的散点图更易于渲染?其次,如果上面的答案是否定的,还有什么其他选项(在mayavi
或不同的python包中)是否必须绘制这个数量级的数据集?
我标记了ParaView只是为了增加渲染我在ParaView中的数据变得非常流畅,让我相信我不会做任何不合理的事情。
更新:
指定模式为2D字形变向加速的事情了很长的路要走。例如。
mlab.points3d(x, y, z, s, colormap="RdYlBu", scale_factor=0.02,
scale_mode='none', mode='2dcross')
可轻松支持多达100,000点
它仍然是不错的,如果任何人都可以添加关于如何加快3D字形的渲染一些信息。
感谢您复苏这个问题!虽然VisPy看起来似乎是一个非常强大的可视化软件包,但乍一看它的API比我以前用于python软件包的复杂,而且它似乎特别适合动态绘图/渲染。无论如何,我会在接下来的日子里看看它是否适合我的目的,谢谢! – lanery