Python matplotlib:用颜色绘制4D的3D图
我想根据一组 x、y、z 点来制作一个 3D 图,并且我希望图上的颜色能够根据一个第四个变量 rho 的值来变化。
目前我有;
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.plot3D(cell_x, cell_y, cell_z, linestyle='None', marker='o', markersize = 5, antialiased=True)
ax.set_xlim3d(0.45, 0.55)
ax.set_ylim3d(0.45, 0.55)
ax.set_zlim3d(0.45, 0.55)
我该如何将 cell_rho(我的第四个数组)作为我 x、y、z 点的颜色呢?(比如说使用 jet 这种颜色映射)。
非常感谢。
补充说明:我不能使用散点图,因为对于我的 18000 个点来说,散点图的速度非常慢,相比之下,使用 plot3d 只加标记要快得多。
1 个回答
7
如果你想显示一个简单的3D散点图,难道不能直接用 scatter
吗?
比如说,
x, y, z = randn(100), randn(100), randn(100)
fig = plt.figure()
from mpl_toolkits.mplot3d import Axes3D
ax = fig.add_subplot(111, projection='3d')
ax.scatter(x, y, z, c=randn(100))
plt.show()
(我是在 python -pylab
环境下运行上面的代码。)
看起来,实际上使用 plot3D
的时候,你必须把你的第四个维度转换成RGB元组。