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

如何为seaborn.objects API绘制的分面图添加总标题?

给Seaborn Objects子图集合添加总标题的可行方法

Seaborn Objects的label()方法并不支持suptitle参数,所以你之前的尝试不会生效。要给分面子图添加全局总标题,得借助Matplotlib的原生方法来实现,具体步骤如下:

  1. 先定义好你的Seaborn Objects图表对象,完成所有子图配置
  2. 渲染图表并获取Matplotlib的Figure对象
  3. 调用Figure的suptitle()方法添加总标题

修改后的代码示例

import seaborn.objects as so
import matplotlib.pyplot as plt

# 假设data和colors已提前定义
p = (
  so.Plot(data, x="time", y="value", color='cols')
  .add(so.Area(alpha=0.9), so.Stack())
  .scale(color=colors)
  .label(x='Time (min)', y='Fraction', color='')
  .limit(y=(0, 1), x=(0, 247.5))
  .facet("posnum", wrap=3)
  .share(y=True, x=True)
  .layout(size=(10,10))
)

# 渲染图表,获取figure和axes对象
fig, _ = p.draw()

# 添加全局总标题,y参数可调整位置避免和子图标题重叠
fig.suptitle('Good', fontsize=14, y=1.02)

# 显示图表
plt.show()

简化写法

如果不想显式获取figure对象,也可以在渲染后直接用plt.suptitle():

p.draw()
plt.suptitle('Good', fontsize=14, y=1.02)
plt.show()

额外调整

你还可以通过suptitle()的参数自定义标题样式,比如加粗、改颜色:

fig.suptitle('Good', fontsize=16, fontweight='bold', color='#2c3e50', y=1.03)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 23:08:20