Python:从数据点列表中制作的3d图是否可以使用渐变颜色方案?

时间:2013-05-21 01:56:47

标签: python colors 3d matplotlib

我有一个用3d绘制的点列表,我希望有一个渐变颜色方案。这可能吗?如果是这样,怎么办呢?我在matplotlib网站上尝试了一些例子,但没有一个工作。

Datagrid.txt由3列数字组成,因此x,t,u是3列向量,并在txt文件中包含受尊重的列。

from mpl_toolkits.mplot3d import axes3d
import numpy as np
import pylab

x, t, u = np.loadtxt("datagrid.txt", unpack = True)

fig = pylab.figure()
ax = fig.add_subplot(111, projection = '3d')
ax.plot(x, t, u)
pylab.show()

enter image description here

1 个答案:

答案 0 :(得分:1)

而不是ax.plot,请尝试ax.plot_surface

修改

在与OP讨论后,我们发现数据是在1D列向量中给出的,但是plot_surface需要2D数组。数据按x值进行分组,其中每个x值的增加值为t。必须将数据重新整形为2D数组,如下所示:

x = x.reshape((-1, 701))
t = t.reshape((-1, 701))
u = u.reshape((-1, 701))

然后,要获得渐变,需要指定色彩映射:

ax.plot_surface(x, t, u, cmap=pylab.get_cmap('jet'))

请求'jet'色彩映射的地方。可以使用matplotlib的色彩映射列表here