You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在matplotlib指定坐标位置绘制所需的等高线?

解决思路与实现方法
  • 第一步:先获取目标点(0.1,0.1)对应的VgN数值
    你当前使用的网格步长为0.001,可直接定位索引取值,无需额外插值:
# 定位x=0.1、y=0.1对应的网格索引
x_idx = np.argmin(np.abs(Ncmax - 0.1))
y_idx = np.argmin(np.abs(khmax - 0.1))
target_val = VgN[y_idx, x_idx]
print(f"目标点对应数值为:{target_val}")

如果需要更精准的数值,可以用scipy.interpolate.interp2d对VgN做二维插值后再取(0.1,0.1)点的数值。

  • 第二步:自定义等高线层级,优先加入目标点的数值
    不要直接给contour传整数代表全局等分的层级数,自己生成层级列表,在全局层级的基础上额外插入目标点附近的密集层级,保证目标点的等高线一定会被绘制:
# 先生成全局基础层级,比如原来的50个
base_levels = np.linspace(VgN.min(), VgN.max(), 50)
# 生成目标点附近的加密层级,步长可以根据你的数值范围调整
near_levels = np.arange(target_val - 0.001, target_val + 0.001, 0.0001)
# 合并两个层级数组并去重排序
all_levels = np.sort(np.unique(np.concatenate([base_levels, near_levels])))

# 绘图时传入自定义的层级
contour = plt.contour(X,Y,VgN, levels=all_levels)
  • 可选优化:局部放大目标区域
    如果全局范围太大导致目标区域的等高线挤在一起看不清,可以直接限制x、y轴的显示范围:
ax.set_xlim(0.08, 0.12)
ax.set_ylim(0.08, 0.12)

内容的提问来源于stack exchange,提问作者Avii

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 20:06:10