参考自Matplotlib Python 画图教程 (莫烦Python)(12)_演讲•公开课_科技_bilibili_哔哩哔哩 https://www.bilibili.com/video/av16378354/index_10.html#page=12
"""绘制等高线图"""
import numpy as np
import matplotlib.pyplot as plt
def calcu_elevation(x1, y1): # 计算高程
ele = (1-x1/2+x1**5+y1**3)*np.exp(-x1**2-y1**2)
return ele
n = 256
x = np.linspace(-3, 3, n)
y = np.linspace(-3, 3, n)
X, Y = np.meshgrid(x, y) # 将原始数据变为网格数据
# 填充等高线的颜色, 8是等高线分为几部分
plt.contourf(X, Y, calcu_elevation(X, Y), 8, alpha=0.75, cmap=plt.cm.hot) # 8表示要分几部分等高线
# 画等高线
C = plt.contour(X, Y, calcu_elevation(X, Y), 8, colors='black', linewidth=0.5)
plt.clabel(C, inline=True, fontsize=10) # 添加文字标签 inlins表示等高线是穿过数字还是不穿过
plt.xticks([])
plt.yticks([])
plt.show()