1

我有一个以 3d 绘制的点列表,我想为该图提供一个渐变配色方案。这可能吗?如果是这样,怎么办?我在 matplotlib 网站上尝试了一些示例,但没有一个有效。

Datagrid.txt 由 3 列数字组成,因此x,t,u3 列向量与 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()

在此处输入图像描述

4

1 回答 1

1

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

编辑

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

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 的颜色图列表。

于 2013-05-21T02:28:11.827 回答