等高线图是地图上高程相等的相邻各点所连成的闭合曲线,它会将地面上海拔高度相同的点连成环线,之后将环线垂直投影到某一水平面上,并按照一定的比例缩绘到图纸上。常见于山谷,山峰或梯度下降算法的场景。
等高线图包含3个主要的信息,分别为坐标点的x值,y值及高度。假设坐标点的高度为h,则h,x,y之间的关系如下:
在matplotlib中,pyplot可以使用contour(),contourf()函数分别绘制和填充等高线图。
contour([X,Y,]Z,[lecels,]**kwargs)
X,Y:表示坐标点的网格数据
Z:表示坐标点对应的高度数据
levels:表示等高线的数量,若levels为n,则说明绘制n+1条等高线
colors:表示不同高度的等高线颜色
cmap:表示颜色映射表
linewidths:表示等高线的宽度
linestyles:表示等高线的线型
需要注意的是,参数X,Y需要接收网格数据,即以坐标矩阵批量描述点的位置。numpy模块的meshgrid()函数可以生成网格数据。contourf()与contour()函数的参数相似。
下面使用numpy生成一组位于-2~2之间的样本数