
import matplotlib.pyplot as pltimport numpy as npplt.style.use('_mpl-gallery-nogrid')# make dataX, Y = np.meshgrid(np.linspace(-3, 3, 256), np.linspace(-3, 3, 256))Z = (1 - X/2 + X**5 + Y**3) * np.exp(-X**2 - Y**2)levels = np.linspace(Z.min(), Z.max(), 7)# plotfig, ax = plt.subplots()ax.contourf(X, Y, Z, levels=levels)plt.show()
# 1. 导入库import matplotlib.pyplot as pltimport numpy as np# 2. 设置内置绘图样式plt.style.use('_mpl-gallery-nogrid')# 3. 生成网格数据X, Y = np.meshgrid(np.linspace(-3, 3, 256), np.linspace(-3, 3, 256))# np.linspace(-3, 3, 256) 在区间 [−3,3] 内均匀生成 256 个点。# np.meshgrid 将这两个一维数组转换为二维坐标矩阵 X 和 Y。# X 的每一行都是相同的 x 坐标值(水平方向变化),Y 的每一列都是相同的 y 坐标值(垂直方向变化)。# 这样形成的网格覆盖了整个定义域,用于计算每个网格点上的函数值。# 4. 计算函数值 ZZ = (1 - X/2 + X**5 + Y**3) * np.exp(-X**2 - Y**2)# 5. 定义等高线层级levels = np.linspace(Z.min(), Z.max(), 7)# Z.min() 和 Z.max() 分别获取函数值的最小值和最大值。# np.linspace(start, stop, num) 在最小值和最大值之间均匀生成 7 个数值,作为等高线的层级。# 这些层级将用于分割颜色区域,每个层级之间的区域填充一种颜色。# 6. 创建图形和坐标轴fig, ax = plt.subplots() # 创建一个图形对象 fig 和一个坐标轴对象 ax# 7. 绘制填充等高线图ax.contourf(X, Y, Z, levels=levels)# contourf 是“填充等高线”函数,与 contour(只画线)不同,它会在不同层级之间填充颜色。# 参数 X, Y, Z 提供了数据的网格坐标和对应值。# levels=levels 指定了等高线的层级,颜色填充将依据这些层级进行。# 8. 显示图形plt.show()
Python Matplotlib绘制二维函数的等高线图
Edward,公众号:数智岩隧Python Matplotlib绘制二维函数的等高线图
