AFAIK Mayavi 没有任何感知统一的颜色图。我天真地尝试将Matplotlib 的颜色图之一传递给它,但它失败了:
from mayavi import mlab
import multiprocessing
import matplotlib.pyplot as plt
plasma = plt.get_cmap('plasma')
...
mlab.pipeline.volume(..., colormap=plasma)
TraitError:无法设置“VolumeFactory”对象的未定义“colormap”属性。
编辑:我找到了将 Matplotlib 颜色图转换为 Mayavi 颜色图的指南。然而,不幸的是它不起作用,因为我试图使用一个使用感知统一颜色图的卷。
from matplotlib.cm import get_cmap
import numpy as np
from mayavi import mlab
values = np.linspace(0., 1., 256)
lut_dict = {}
lut_dict['plasma'] = get_cmap('plasma')(values.copy())
x, y, z = np.ogrid[-10:10:20j, -10:10:20j, -10:10:20j]
s = np.sin(x*y*z)/(x*y*z)
mlab.pipeline.volume(mlab.pipeline.scalar_field(s), vmin=0, vmax=0.8, colormap=lut_dict['plasma']) # still getting the same error
mlab.axes()
mlab.show()
...