mplot3d python不兼容维度

2024-09-29 19:27:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图用pythonmplot3d绘制3D中的2D数组,但是我得到了一个关于轴1上不兼容维度的错误 我已经看过其他问题,答案建议使用meshgrid,但我已经在使用它,仍然得到一个错误,我的X和Y范围也乘以Z值的数量。 这是我的代码:

def view_3d(map3d):
    fig = plt.figure()
    ax = fig.gca(projection='3d')
    X = []
    Y = []
    Z = []
    for wid in range(len(map3d)):
        X.append(wid)
        for hi in range(len(map3d[wid])):
            if wid is 0:
                Y.append(hi)
            Z.append(map3d[wid][hi])
    print(len(X), len(Y), len(Z))
    X = np.array(X)
    Y = np.array(Y)

    X2, Y2 = np.meshgrid(X, Y)
    Z = np.array(Z)
    print(len(X2),len(Y2),len(Z))
    print(len(X2[0]), len(Y2[0]))
    surf = ax.plot_surface(X2, Y2, Z, rstride=1, cstride=1, cmap=cm.coolwarm,
            linewidth=0, antialiased=False)

    ax.zaxis.set_major_locator(LinearLocator(10))
    ax.zaxis.set_major_formatter(FormatStrFormatter('%.02f'))

    fig.colorbar(surf, shrink=0.5, aspect=5)

    plt.show()

传递的2d数组(map3d)的长度为566×566

print语句只是为了确认数组的长度

错误是:

^{pr2}$

运行代码和查看错误所需的代码和图像的google drive链接如下: https://drive.google.com/folderview?id=0B2ssDQewnhReWGJZYXZRSXNxRFU&usp=sharing

感谢所有帮助, 谢谢


Tags: 代码len错误npfig数组hiax

热门问题