xn,yn=np.shape(pmap)
maxx = minx+xn*grid_size
maxy = miny+yn*grid_size
x=np.linspace(minx,maxx,xn)
y=np.linspace(miny,maxy,yn)
xx, yy = np.meshgrid(x,y)
pmap=np.array(pmap)
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.plot_surface(xx, yy, pmap, cmap='viridis')
报错:ValueError: shape mismatch:
objects cannot be broadcast to a single shape. Mismatch is between arg 0 with shape (456, 333) and arg 2 with shape (333, 456)
原因:
输出xx,yy和pmap的shape,发现正好相反
因为假设 x, y 分别为 m, n 维向量,则np.meshgrid(x,y) 结果是n*m矩阵
解决:
所以生成维数对应的矩阵,应该用np.meshgrid(y,x)。