Meshgrid功能为将两个坐标轴上的点转化为平面上的网格,即将两组一维数据分别转化为二维数据,原理为简单复制(通过简单复制将以为数组转化为二维数组,即格点)。
以上的详细解释:设x轴有m个数据(是长度为m的向量),y轴有n个数据(是长度为n的向量),x,y轴相互垂直。则通过Meshgrid函数X, Y = np.meshgrid(x, y)
,最终生成矩阵X,Y,且X,Y都是n*m的二维矩阵。已知原理为简单复制,那么就是X为将一维的x在y方向上复制n次生成的二维数组,Y在x方向上同理。
加载数据
import numpy as np
import matplotlib.pyplot as plt
m = 5
n = 3
x = np.linspace(0, 1, m)
y = np.linspace(0, 1, n) #生成两个一维数组
X, Y = np.meshgrid(x, y) #转化为grid
查看向量x,y和矩阵X,Y
x
out:
array([ 0. , 0.25, 0.5, 0.75, 1. ])
y
out:
array([ 0. , 0.5, 1. ])
X
out:
array([[ 0. , 0.25, 0.5, 0.75, 1. ],
[ 0. , 0.25, 0.5, 0.75, 1. ],
[ 0. , 0.25, 0.5, 0.75, 1. ]])
Y
out:
array([[ 0. , 0. , 0. , 0. , 0. ]
[ 0.5, 0.5, 0.5, 0.5, 0.5]
[ 1. , 1. , 1. , 1. , 1. ]])
查看矩阵对应的维度:
X.shape
out:
(3, 5)
Y.shape
out:
(3, 5)
plt.plot(X, Y, marker='.', color='blue', linestyle='none')
plt.show()
等值线绘制及SVC超平面绘制。
等值线:
(后续应该会发布等值线绘制方法)
参考、图片:https://mp.weixin.qq.com/s/icNQELJrpOBEYfHCJCzAKg