下面代码在实际操作中稍作修改即可使用
代码步骤:
- 定义一个函数,x,y带入将返回一个高度值z
- 生成n对点
- 将这n对点由点变成一个网格
- 加颜色 中间的数字代表等高颜色最少分出n+1块
- 画出等高线的线 中间的数字代表等高线最少分出n+1条
- 将等高线加标签显示数值
- 选择是否将坐标轴数据隐藏
下面是代码部分:
import numpy as np
import matplotlib.pyplot as plt
plt.figure()
# 定义一个函数,x,y带入将返回一个高度值z
def f(x,y):
# the height function
return (1-x/2+x**5+y**3)*np.exp(-x**2-y**2)
# 生成n对点
n=256
x=np.linspace(-3, 3,n)
y=np.linspace(-3, 3,n)
# 将这n对点由点变成一个网格
X,Y=np.meshgrid(x,y)
# 加颜色 中间的数字代表等高颜色最少分出n+1块
plt.contourf(X,Y,f(X,Y),8,alpha=0.75,cmap=plt.cm.hot) # alpha:透明度,
# cmap:f(X,Y)点对应的颜色,可以选择hot与cool
# 画出等高线的线 中间的数字代表等高线最少分出n+1条
C=plt.contour(X, Y,f(X,Y),8,color='black',linewidths=0.5)
# 将等高线加标签显示数值
plt.clabel(C, inline=True,fontsize=10)
#选择是否将坐标轴数据隐藏
plt.xticks(())
plt.yticks(())
plt.show()
效果图: