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

如何将DataFrame的百分比差值文本添加到Seaborn relplot各子图

Seaborn relplot 多子图添加对应指标差值文本解决方案

问题原因

存在两个核心错误:

  • 最初调用p.fig.text()是向整个画布添加文本,传入的坐标是整个画布的相对坐标,因此所有文本都会被放在画布的同一个位置,无法对应到各个子图
  • 第二次尝试的代码存在两处问题:一是你定义的绘图对象名为p,却调用了不存在的g.axes变量,二是依旧使用了画布级别的fig.text方法,没有调用子图自身的文本添加接口

正确实现

替换你原来的添加文本的代码段为以下内容即可:

# 遍历所有子图和对应的百分比差值
for ax, diff_val in zip(p.axes, dfp['Difference']):
    # 子图相对坐标:(0.5, 0.95)对应子图顶部居中位置
    ax.text(
        x=0.5, 
        y=0.95, 
        s=f"{diff_val}%", 
        fontsize=12, 
        ha="center", 
        va="top", 
        transform=ax.transAxes
    )

参数说明

  • transform=ax.transAxes:指定坐标使用子图自身的相对比例坐标,(0,0)对应子图左下角,(1,1)对应右上角,不会随子图坐标轴的数值范围变化,适配不同指标的y轴范围
  • ha="center":设置文本水平居中对齐
  • va="top":设置文本顶部对齐传入的y坐标,避免文本挡住下方的散点
  • 你可以根据需求调整x、y的数值,修改文本在子图中的位置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 06:15:07