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

如何调整statannotations在Matplotlib图表内p值标注的高度

调整statannotations p值标注位置的解决方案

你可以通过statannotations.Annotator的configure()方法里的几个参数,轻松把偏低的p值标注向上调整到图表框内合适的位置,具体调整方式如下:

1. 核心参数调整

在configure()中添加vertical_offset和offset参数,这两个参数分别控制标注文本与连线的距离、以及连线整体的垂直偏移:

from statannotations.Annotator import Annotator
import matplotlib.pyplot as plt

f, ax = plt.subplots()

# 这里放入你的图表绘制代码

annotator = Annotator(ax, pairs=significant_pairs, data=curr_df, x=group_column, y=selected_colunmn, 
                      order=groups_order)
annotator.set_pvalues(p_val_list)
# 新增vertical_offset和offset参数来上移标注
annotator.configure(loc='inside', fontsize=25, vertical_offset=10, offset=15)
annotator.annotate()

参数说明:

  • vertical_offset:控制p值文本和标注连线之间的垂直间距,数值越大,文本越往上走;
  • offset:控制整个标注连线(包括两端的短横线)相对于数据点的垂直偏移,增大这个值会让整个标注组向上移动;
  • 如果需要调整连线的垂直长度,还可以额外加上line_height参数(比如line_height=0.2),这个参数按轴范围比例调整连线高度,你可以根据自己图表的实际尺寸微调。

2. 辅助调整:扩展y轴范围

如果调整上述参数后,标注还是差点空间,你可以手动扩展y轴的上限,给标注留出足够的显示空间:

# 在绘制完图表后,设置y轴上限
y_max = curr_df[selected_colunmn].max()
ax.set_ylim(top=y_max * 1.1)  # 把上限设为数据最大值的1.1倍,可根据实际情况调整倍数

这样就能确保标注完全落在图表框内部,同时位置也足够靠上啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 17:20:19