【python画图_等高线】
在【欠拟合、过拟合(L1正则化、L2正则化)】这篇文章里面,我们用了一个简单的等高线来帮助大家理解问题,那么有同学会问:我怎么才能画出高级的等高线的图呢?今天我们就来学习一下,python如何画出等高线的,这里主要用到matplotlib.pyplot包的contour、contourfcontour:矩阵的等高线contourf:填充的等高线大家可能还不是很了解这两个有什么区别,那么我们就简单的
·
在【欠拟合、过拟合(L1正则化、L2正则化)】这篇文章里面,我们用了一个简单的等高线来帮助大家理解问题,那么有同学会问:我怎么才能画出高级的等高线的图呢?
今天我们就来学习一下,python如何画出等高线的,这里主要用到matplotlib.pyplot包的contour、contourf
contour:矩阵的等高线
contourf:填充的等高线
大家可能还不是很了解这两个有什么区别,那么我们就简单的举个例子来看看,这两个函数都是怎么画出等高线的
1、给出数据
首先我们给出一组数据X,Y,Z,其中
###### 数据X,Y,Z
x = np.arange(-10, 10, 0.01) # 步长为0.01,即每隔0.01取一个点
y = np.arange(-10, 10, 0.01) # 步长为0.01,即每隔0.01取一个点
X, Y = np.meshgrid(x, y) # 将原始数据变成网格数据形式
Z = X**2 + Y**2 # 我们假设Z为关于X,Y的函数,以Z=X^2+Y^2为例
2、画图
1)区别对比
ct = plt.contour(X,Y,Z,25) # 画等高线,25:等高线的数目
ctf = plt.contourf(X,Y,Z,25) # 画等高线,25:等高线的数目
2)画出图形
ctf = plt.contourf(X,Y,Z,15)
ct = plt.contour(X,Y,Z,15,colors='k') # 等高线设置成黑色
plt.clabel(ct, inline=True, fontsize=10) # 添加标签
# plt.pcolormesh(X, Y, Z) # 绘制分类背景图
plt.colorbar(ctf) # 添加cbar
# plt.xticks(()) # 去掉x标签
# plt.yticks(()) # 去掉y标签
3)改变等高线填充颜色
ctf = plt.contourf(X,Y,Z,15,cmap=plt.cm.hot) # 设置为成热图
ct = plt.contour(X,Y,Z,15,colors='k') # 等高线设置成黑色
plt.clabel(ct, inline=True, fontsize=10) # 添加标签
plt.colorbar(ctf) # 添加cbar
4)等高线变成虚线
x = np.arange(-10, 10, 0.01) # 步长为0.01,即每隔0.01取一个点
y = np.arange(-10, 10, 0.01) # 步长为0.01,即每隔0.01取一个点
X, Y = np.meshgrid(x, y) # 将原始数据变成网格数据形式
Z = -(X**2 + Y**2) # 我们假设Z为关于X,Y的函数,以Z=-(X^2+Y^2)为例
ctf= plt.contourf(X,Y,Z,15)
ct = plt.contour(X,Y,Z,15,colors='k')
plt.clabel(ct, inline=True, fontsize=10) # 添加标签
plt.colorbar(ctf) # 添加cbar
详细内容请看我公众号~
更多推荐
已为社区贡献2条内容
所有评论(0)