我是 Python 新手,所以请耐心等待。我很感激任何帮助!
我拥有的:三个一维列表(xr、yr、zr),一个包含 x 值,另外两个包含 y 和 z 值
我想做的事:在 matplotlib 中创建 3D 等高线图
我意识到我需要使用以下方法将三个一维列表转换为三个二维列表meshgrid功能。
这是我到目前为止所拥有的:
xr = np.asarray(xr)
yr = np.asarray(yr)
zr = np.asarray(zr)
X, Y = np.meshgrid(xr,yr)
znew = np.array([zr for x,y in zip(np.ravel(X), np.ravel(Y))])
Z = znew.reshape(X.shape)
运行此命令会出现以下错误(对于我在上面输入的最后一行):
total size of new array must be unchanged
我在 stackoverflow 上进行了挖掘,并尝试使用有类似问题的人的建议。以下是我从每个建议中得到的错误:
将最后一行更改为:
Z = znew.reshape(X.shape[0])
给出同样的错误。
将最后一行更改为:
Z = znew.reshape(X.shape[0], len(znew))
给出错误:
Shape of x does not match that of z: found (294, 294) instead of (294, 86436).
将其更改为:
Z = znew.reshape(X.shape, len(znew))
给出错误:
an integer is required
有任何想法吗?