在Python中绘制和填充3D卷

时间:2018-03-02 02:31:38

标签: python python-3.x numpy matplotlib scipy

我正在使用Python处理一些3D(体积)数据,对于每个四面体,我不仅有顶点的坐标,还有第四个维度,它是该四面体体积的某个参数的值。 / p>

例如:

# nodes coordinates that defines a tetrahedron volume:
x = [0.0, 1.0, 0.0, 0.0]
y = [0.0, 0.0, 1.0, 0.0]
z = [0.0, 0.0, 0.0, 1.0]
# Scaler value of the potential for the given volume:
c = 100.0

我想绘制一个填充了一些纯色的3D体积(由节点坐标给出),它代表给定的值C.

我怎么能在Python 3.6中使用它的绘图库呢?

1 个答案:

答案 0 :(得分:1)

您可以使用mayavi.mlab.triangular_mesh()

from mayavi import mlab

from itertools import combinations, chain

x = [0.0, 1.0, 0.0, 0.0, 2.0, 3.0, 0.0, 0.0]
y = [0.0, 0.0, 1.0, 0.0, 2.0, 0.0, 3.0, 0.0]
z = [0.0, 0.0, 0.0, 1.0, 2.0, 0.0, 0.0, 3.0]
c = [20, 30]

triangles = list(chain.from_iterable(combinations(range(s, s+4), 3) for s in range(0, len(x), 4)))
c = np.repeat(c, 4)

mlab.triangular_mesh(x, y, z, triangles, scalars=c)

enter image description here