如何在python中使用三个1D数组绘制3D曲面图,因为我得到一个错误Z必须是二维的。如何将其转换为2D数组?

时间:2018-06-01 10:06:24

标签: python arrays matplotlib

使用三个随机1D数组我正在尝试创建表面Plot

`
Z = [7.209, 7.223, 7.229, 7.236, 7.243, 7.27, 7.277, 7.284, 7.292, 7.306,
     7.312, 7.329, 7.337, 7.347, 7.354, 8.356, 8.363, 8.374, 8.39, 8.398]
X = np.random.rand(20)
Y = np.random.rand(20)
X, Y = np.meshgrid(X,Y)
ax.plot_surface(X,Y,Z,rstride=4,cstride=4, cmap=plt.cm.coolwarm)
`

我收到错误

    if Z.ndim != 2:
AttributeError: 'list' object has no attribute 'ndim'

如何绘制三维曲面图,其中Z值不是X和Y的函数。

1 个答案:

答案 0 :(得分:0)

点之间没有联系。它们是3个独立的1D阵列,X具有20个点,Y具有20个点,Z具有20个点。我做网格网格的唯一原因是将1D数组转换为2D数组,这是绘制表面图的要求,我没有得到如何在X和Y的网格上绘制Z值。