Matplotlib- meshgrid

时间:2015-11-25 22:39:55

标签: python matplotlib pde

我想为网格的解决方案制作表面图。我的域在x和y方向上的范围为[-1,1]。我知道我需要为x和y的plot_surface(x,y,z)提供2D数组。但是,我不明白如何为z安排这个。

为了使事情更清楚,我说每个方向的网格间距为3个点。我最终分别在x和y方向上得到[-1,0,1]和[-1,0,1]。这给了我9分,我需要评估z。这是我写的:

x = np.linspace(-1,1, 3)
y = np.linspace(-1,1, 3)
X,Y = np.meshgrid(x, y)
# Remaining code uses plot_surface(X, Y, Z_approx)
#

每个X和Y是2D阵列,每个长度为3。但是,我的Z“近似值”长度为9.我如何将它一起绘制?

以下是网格的外观!

  

*( - 1,1)____ *(0,1)____ *(1,1)

     

*( - 1,0)____ *(0,0)____ *(1,0)

     

*( - 1,-1)____ *(0,-1)____ *(1,-1)

1 个答案:

答案 0 :(得分:1)

当我们不知道你的z矩阵是什么时,提供答案有点困难,所以这是我最好的两个猜测:

  1. z是1x9(或9x1)向量,在这种情况下,应使用np.reshape命令将其重新整形为3x3矩阵。
  2. e.g。

    Z = np.reshape(Z_approx, (3, 3))
    

    1. z是一个9x9矩阵,在这种情况下,我只需使用这个小变化来制作xy 9x9矩阵而不是3x3矩阵。
    2. e.g。

      x = np.linspace(-1,1, 9)
      y = np.linspace(-1,1, 9)
      

      希望有所帮助,或者您可以让我们更多地了解您的z矩阵。