参考资料:
1. np.meshgrid(x,y) 与 np.c_[ ]
xx, yy = np.meshgrid(x,y)的作用是在二维平面中将每一个x和每一个y分别对应起来,编织成栅格.
nx,ny = (3,3)
#从0开始到1结束,返回一个numpy数组,nx代表数组中元素的个数
x = np.linspace(0,2,nx)
# [0. 1. 2.]
y = np.linspace(0,2,ny)
# [0. 1. 2.]
xv,yv = np.meshgrid(x,y)
print(xv.ravel())
#[ 0. 1. 2. 0. 1. 2. 0. 1. 2.]
print(yv.ravel())
#[ 0. 0. 0. 1. 1. 1. 2. 2. 2.]
f=np.c_[xv.ravel(), yv.ravel()]
#f = array([[0., 0.],
[1., 0.],
[2., 0.],
[0., 1.],
[1., 1.],
[2., 1.],
[0., 2.],
[1., 2.],
[2., 2.]])
ravel函数是将矩阵变为一个一维的数组,其中xv.ravel()就表示x轴的坐标,yv.ravel()就表示了y轴的坐标,我们将x轴的坐标和y轴的坐标进行一一对应,就产生了一个2*2大小为1的网格中的9个点的坐标。注意np.c_[]用方括号[]来接收输入.
另外, 如果,将sparse参数设置为True,就不会向上面一样进行扩展了,也就是说它产生的网格坐标不是所有的网格坐标,而是网格对角线上的坐标点。
nx,ny = (3,3)
#从0开始到1结束,返回一个numpy数组,nx代表数组中元素的个数
x = np.linspace(0,2,nx)
# [0. 1. 2.]
y = np.linspace(0,2,ny)
# [0. 1. 2.]
xv,yv = np.meshgrid(x,y,sparse=True)
print(xv)
#[[ 0. 1. 2.]]
print(yv)
#[[ 0.]
[ 1.]
[ 2.]]
plt.contourf()和 plt.contour()
参考
3. Contours 等高线图
4. 关于plt.cm.Spectral