Matplotlib- 网格
Matplotlib- meshgrid
我想为网格的解绘制曲面图。我的域在 x 和 y 方向上的范围都是 [-1, 1]。我知道我需要为 plot_surface(x,y,z) 提供 x 和 y 的二维数组。但是,我不明白如何为 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 都是二维数组,每个长度为 3。但是,我的 Z "approximation" 的长度为 9。然后如何将它们绘制在一起?
这是网格的样子!
*(-1,1) ____ *(0,1) ____ *(1,1)
*(-1,0) ____ *(0,0) ____ *(1,0)
*(-1,-1)____ *(0,-1)____ *(1,-1)
当我们不知道您的 z
矩阵是什么时,很难提供答案,所以这是我的两个最佳猜测:
z
是 1x9(或 9x1)向量,在这种情况下,应使用 np.reshape
命令将其整形为 3x3 矩阵。
例如
Z = np.reshape(Z_approx, (3, 3))
或
z
是一个 9x9 矩阵,在这种情况下,我只需使用这个小改动就可以将 x
和 y
设为 9x9 矩阵,而不是 3x3。
例如
x = np.linspace(-1,1, 9)
y = np.linspace(-1,1, 9)
希望对您有所帮助,或者您可以让我们进一步了解您的 z
矩阵。
我想为网格的解绘制曲面图。我的域在 x 和 y 方向上的范围都是 [-1, 1]。我知道我需要为 plot_surface(x,y,z) 提供 x 和 y 的二维数组。但是,我不明白如何为 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 都是二维数组,每个长度为 3。但是,我的 Z "approximation" 的长度为 9。然后如何将它们绘制在一起?
这是网格的样子!
*(-1,1) ____ *(0,1) ____ *(1,1)
*(-1,0) ____ *(0,0) ____ *(1,0)
*(-1,-1)____ *(0,-1)____ *(1,-1)
当我们不知道您的 z
矩阵是什么时,很难提供答案,所以这是我的两个最佳猜测:
z
是 1x9(或 9x1)向量,在这种情况下,应使用np.reshape
命令将其整形为 3x3 矩阵。
例如
Z = np.reshape(Z_approx, (3, 3))
或
z
是一个 9x9 矩阵,在这种情况下,我只需使用这个小改动就可以将x
和y
设为 9x9 矩阵,而不是 3x3。
例如
x = np.linspace(-1,1, 9)
y = np.linspace(-1,1, 9)
希望对您有所帮助,或者您可以让我们进一步了解您的 z
矩阵。