You need to enable JavaScript to run this app. Python:如何将参数路径叠加到等高线图并标注a0值
优惠活动
大模型
产品
解决方案
定价
更多

Python:如何将参数路径叠加到等高线图并标注a0值

核心实现逻辑

两类绘图的物理坐标完全同源:等高线图x轴为r_sq、y轴为n_th,你提前计算的rsq_fp、nth_fp数组本身就是对应这两个轴的物理坐标值,不存在跨坐标系转换的额外工作量,直接在已有的等高线图轴对象上叠加路径与标注即可。

具体操作步骤
  • 调整原有等高线代码的执行顺序:生成等高线、色条、轴标签等基础内容后不要立刻调用plt.show(),保留返回的ax坐标轴对象用于后续叠加绘图
  • 在等高线的轴对象上绘制物理参数路径:将rsq_fp作为x坐标、nth_fp作为y坐标传入ax.plot(),选用和等高线色彩区分度高的样式(比如粗黑虚线)避免和等高线混叠,示例代码:
    ax.plot(rsq_fp, nth_fp, color='black', linewidth=2, linestyle='--', label='物理允许参数路径')
    
  • 添加离散点的a0值标注:不要逐点标注全部100个采样值(会造成严重文字重叠),按固定间隔取采样点标注,同时在路径上打小型散点标记标注位置,示例代码:
    # 每隔10个采样点做一次标注,可根据实际图面密度调整间隔大小
    for idx in range(0, len(a_0_list), 10):
        x = rsq_fp[idx]
        y = nth_fp[idx]
        # 标记路径上的离散点
        ax.scatter(x, y, color='black', s=15)
        # 标注对应a0值,位置沿y轴轻微上移避免压到路径线
        ax.text(x, y + 0.03, f'$a_0={a_0_list[idx]:.2f}$', fontsize=10)
    
  • 调整坐标轴范围避免路径被裁剪:你原有等高线的n_th范围仅到0.5,但实际路径终点的n_th可达1.6,需要手动扩展轴范围覆盖所有绘图内容,示例代码:
    ax.set_xlim(left=0, right=max(np.max(r_field), np.max(rsq_fp)))
    ax.set_ylim(bottom=0, top=max(np.max(n_field), np.max(nth_fp)))
    
  • 补充图例后再调用plt.show()完成最终绘图
注意事项
  • 你原本单独的一维曲线图是将r_sq、n_th都作为因变量、以a0为x轴绘制的,这套坐标系仅用于单独展示参数随a0的变化趋势;叠加到等高线图时,a0仅作为路径上的标记参数,不再作为坐标轴维度使用,不需要做额外的坐标映射。
  • 标注的偏移量、取点间隔可以根据实际出图效果调整,保证文字不重叠、不压线即可。

内容的提问来源于stack exchange,提问作者J.Agusti

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.28 14:15:05