Matplotlib数据可视化——contour等高线图
等高线大家都不陌生,这个词来源对地势地貌的描述。
在机器学习的随机梯度下降中涉及了等高线图用以形象的描述每次迭代的步距、方向等,这也正是它的用武之地。仅仅学习其中的皮毛。
君子性非异也,善假于物也
import numpy as np
import matplotlib.pyplot as plt
# 定义高度函数
def height(x, y):
return (1-x/2+x**5+y**3)*np.exp(-x**2-y**2)
n = 256
x = np.linspace(-3,3,n)
y = np.linspace(-3,3,n)
# 将原始数据变成网格数据
X,Y = np.meshgrid(x,y)
# 填充颜色
plt.contourf(X,Y,height(X,Y),8,alpha=0.75,cmap=plt.cm.hot)
# add contour lines
C = plt.contour(X,Y,height(X,Y),8,color='black',lw=0.5)
# 显示各等高线的数据标签cmap=plt.cm.hot
plt.clabel(C,inline=True,fontsize=10)
plt.show()
说明
1. contourf 填充颜色函数:
- 前三个参数 X, Y, Height 用来引进点的位置和对应的高度数据;
- 数字 8 代表将等高线图分成10块;
- alpha 用来设置填充颜色的范围,alpha越接近1,颜色的搭配就越向深色风格过渡,如下面几张图所示, α=0,0.2,0.95:
cmap=plt.cm.hot
表示图片颜色为暖色。也可直接写成cmap='hot'
hot->cool如下图:
2. contour 绘制等高线函数
前三个参数与contourf相同,后两个见文知意。