NumPy meshgrid() 函数从坐标向量返回坐标矩阵。给定一维坐标数组 x1, x2,…, xn,它会生成 N-D 坐标数组,用于对 N-D 网格上的 N-D 标量/矢量场进行矢量化评估。
语法
numpy.meshgrid(*xi, copy=True, sparse=False, indexing='xy')
参数
x1, x2,…, xn | 必填。 指定表示网格坐标的一维数组。 |
返回值
对于向量x1, x2,..., xn ,长度为 Ni=len(xi),返回 (N2, N1, N3,...Nn) 形状数组,其元素为 xi 重复填充矩阵,沿第一个维度填充 x1,第二个维度填充 x2,依此类推。
示例:
下面的示例显示了meshgrid()函数的用法。
import numpy as np
x = [1, 2, 3, 4, 5]
y = [11, 12, 13, 14, 15]
#利用meshgrid()函数获取两个二维数组
x_new, y_new = np.meshgrid(x, y)
#显示结果
print("x_new:")
print(x_new)
print("\ny_new:")
print(y_new)
上述代码的输出将是:
x_new:
[[1 2 3 4 5]
[1 2 3 4 5]
[1 2 3 4 5]
[1 2 3 4 5]
[1 2 3 4 5]]
y_new:
[[11 11 11 11 11]
[12 12 12 12 12]
[13 13 13 13 13]
[14 14 14 14 14]
[15 15 15 15 15]]
绘制函数
meshgrid()函数的输出可用于绘制函数。
示例:
在下面的示例中,matplotlib contourf() 函数绘制填充的椭圆平面的等高线图。
import matplotlib.pyplot as plt
import numpy as np
xlist = np.linspace(-5.0, 5.0, 100)
ylist = ylist = np.linspace(-5.0, 5.0, 100)
X, Y = np.meshgrid(xlist, ylist)
#创建椭圆平面
Z = (X**2)/4 + (Y**2)/9
fig, ax = plt.subplots()
#绘制填充等值线图
cb = ax.contourf(X, Y, Z)
#向绘图添加颜色条
fig.colorbar(cb)
ax.set_title('Filled Contour Plot')
ax.set_xlabel('x (cm)')
ax.set_ylabel('y (cm)')
plt.show()
上述代码的输出将是: