Matplotlib等高线图仅显示指定Z值的单条带标签等高线
自定义特定Z值的单条等高线实现方案
修改后的代码
import matplotlib.pyplot as plt import numpy as np # 用户自定义目标Z值 z_target = 70 x = np.linspace(1, 5, 20) y = np.linspace(1, 5, 20) X, Y = np.meshgrid(x, y) Z = X**3 + Y**3 ax = plt.axes() # 仅绘制指定Z值的等高线,传入单元素levels列表 contours = plt.contour(X, Y, Z, levels=[z_target], colors='black') # 为这条等高线添加数值标签 plt.clabel(contours, fmt='%2.2f', inline=True) # 保留填充背景(可选,不需要可删除该行及以下相关代码) plt.contourf(X, Y, Z, levels=np.linspace(Z.min(), Z.max(), 100), cmap='plasma', alpha=1.0) ax.set_xlabel('X') ax.set_ylabel('Y') plt.colorbar() plt.show()
关键改动说明
- 新增
z_target变量,直接设置用户需要的特定Z值(示例为70) - 将
plt.contour()的第三个参数从整数(自动生成等高线数量)改为levels=[z_target]:传入包含目标Z值的列表,强制Matplotlib仅绘制该值对应的等高线 - 保留
plt.clabel()确保等高线的数值标签正常显示,若不需要背景填充,可直接删除plt.contourf()相关代码
内容的提问来源于stack exchange,提问作者cb vaswar
相关产品推荐
相关产品推荐

