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

如何为Seaborn lmplot生成的FacetGrid图表添加主标题与副标题?

给Seaborn FacetGrid添加副标题的面向对象方法

Seaborn的FacetGrid(即示例中的g)对应的g.fig是Matplotlib的Figure对象,Matplotlib没有直接提供subtitle()方法,但可以通过Figure.text()实现副标题的添加,完全符合面向对象的操作方式,无需使用plt.title()这类全局方法。

实现代码示例

import seaborn as sns
import matplotlib.pyplot as plt
from palmerpenguins import load_penguins
df = load_penguins()

g = sns.lmplot(
    data=df, x="bill_length_mm", y="bill_depth_mm",
    col="species", row="sex", height=3,
)

# 调整图表顶部间距,为主副标题预留空间
g.fig.subplots_adjust(top=0.85)

# 添加主标题
g.fig.suptitle("企鹅喙部尺寸关系", fontsize=14)
# 添加副标题:水平居中放置在主标题下方,通过y坐标控制垂直位置
g.fig.text(
    x=0.5, y=0.92,
    s="按物种与性别分组的线性回归拟合",
    ha="center", fontsize=10
)

plt.show()

关键说明

  • g.fig.text()的x=0.5和ha="center"确保副标题水平居中对齐主标题
  • 通过调整y参数的值可以控制副标题与主标题的垂直间距
  • subplots_adjust(top=...)用于避免主副标题与子图内容重叠

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 23:55:19