Python 矩形网格上的曲面图,给出“;ValueError“;

Python 矩形网格上的曲面图,给出“;ValueError“;,python,numpy,matplotlib,plot,surface,Python,Numpy,Matplotlib,Plot,Surface,我试图在矩形网格上绘制曲面。这是我的代码: Z = np.reshape(FV,(N_x,N_y)) x = np.linspace(0,1,N_x) y = np.linspace(0,1,N_y) X,Y = np.meshgrid(x,y) fig = plt.figure() ax = plt.axes(projection='3d') ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap='viridi

我试图在矩形网格上绘制曲面。这是我的代码:

Z = np.reshape(FV,(N_x,N_y))
x = np.linspace(0,1,N_x)
y = np.linspace(0,1,N_y)

X,Y = np.meshgrid(x,y)
fig = plt.figure()
ax = plt.axes(projection='3d')
ax.plot_surface(X, Y, Z, rstride=1, cstride=1,
                cmap='viridis', edgecolor='none')
我得到一个错误:
ValueError:形状不匹配:无法将对象广播到单个形状


这只在N_x==N_y时有效,当N_x!=是吗?

这恰好是实现方式的一个产物-请查看有关索引的注释

y变量随默认索引的行而变化
'xy'
(显然,x变量随列而变化!)-从几何角度考虑-水平方向是x,垂直方向是y。因此,您有两种可能的解决方案:

  • Z=np.重塑(FV,(nux,nuy))
    更改为
    Z=np.重塑(FV,(nuy,nux))
    。也许有点不直观,但效果很好
  • 使用关键字参数
    index='ij'
    np.meshgrid
    更改为沿行变化的x变量-这是我们在使用矩阵时非常习惯考虑的问题