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

如何使用dynesty.plotting.cornerplot将两次dynesty运行结果绘入同一张角图

在同一张角图中对比两次dynesty运行结果

要实现两次dynesty结果的同图对比,核心是复用第一次绘图生成的matplotlib.figure.Figure对象,让第二次绘图叠加在同一张图上。以下是具体操作步骤和代码示例:

1. 准备依赖和结果对象

确保你已经导入所需模块,并且持有两次dynesty运行得到的Results实例(假设分别为results1和results2):

import matplotlib.pyplot as plt
from dynesty import plotting as dyplot

2. 绘制第一组结果的基础角图

先绘制第一组结果,同时保存返回的图对象,后续用来叠加第二组结果:

# 绘制第一组结果,自定义颜色、参数标签和标题样式
fig, axes = dyplot.cornerplot(results1, 
                              color='darkblue', 
                              labels=['参数A', '参数B', '参数C'],  # 替换为你的实际参数名称
                              show_titles=True,
                              title_kwargs={'fontsize': 10},
                              label_kwargs={'fontsize': 12})

3. 叠加第二组结果到同一张图

调用cornerplot时,通过fig参数传入之前生成的图对象,同时设置差异化的视觉参数区分两组结果:

# 叠加第二组结果,关闭重复标题、调整透明度避免遮挡
dyplot.cornerplot(results2, 
                  fig=fig,  # 复用已有的图对象,实现同图叠加
                  color='crimson', 
                  labels=['参数A', '参数B', '参数C'],
                  show_titles=False,  # 避免重复显示标题
                  label_kwargs={'fontsize': 12},
                  plot_kwargs={'alpha': 0.6})  # 设置透明度,让重叠区域可见

4. 添加图例区分两组结果

手动给角图添加图例,方便识别不同的运行结果:

# 在任意子图上添加图例,这里选择左上角子图
axes[0, 0].legend(['第一次运行结果', '第二次运行结果'], loc='upper right')

# 显示或保存最终对比图
plt.show()
# plt.savefig('dynesty_corner_comparison.png', dpi=300, bbox_inches='tight')

关键参数说明

  • fig:指定已有的Figure对象,是实现同图叠加的核心参数。
  • color:设置不同颜色区分两组结果,建议选择对比度高的配色。
  • alpha:调整透明度,避免两组曲线完全遮挡,提升重叠区域的可读性。
  • show_titles:第二次绘图时关闭,避免重复显示标题造成界面混乱。

注意:如果两次运行的参数数量、顺序不一致,需要先统一参数维度和顺序,否则无法正确叠加。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 14:32:07