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

使用Seaborn tight_layout()导致图表标题截断的解决方法

解决Seaborn箱线图tight_layout()截断标题的问题

以下是几种可行的解决办法:

方法1:调整tight_layout的rect参数

通过rect参数手动指定绘图区域的边界,给标题留出右侧空间。rect的格式是[left, bottom, right, top],取值范围0到1,调整right值缩小绘图区域宽度:

#!/usr/bin/env python3
import seaborn as sns

df = sns.load_dataset('Titanic')

plot = sns.catplot(kind='box', data=df, y='fare')
plot.set(title='Lorem ipsum dolor sit amet, consetetur sadipscing elitr')
# 右侧留出5%的空间给标题
plot.tight_layout(rect=[0, 0, 0.95, 1])
plot.figure.show()

方法2:使用subplots_adjust调整边距

直接调整整个画布的子图边距,增大右侧边距来容纳长标题:

#!/usr/bin/env python3
import seaborn as sns

df = sns.load_dataset('Titanic')

plot = sns.catplot(kind='box', data=df, y='fare')
plot.set(title='Lorem ipsum dolor sit amet, consetetur sadipscing elitr')
plot.tight_layout()
# 调整右侧边距为0.9(默认值更接近1)
plot.figure.subplots_adjust(right=0.9)
plot.figure.show()

方法3:让标题自动换行

给标题设置wrap=True,matplotlib会自动将过长的标题换行显示,避免横向截断:

#!/usr/bin/env python3
import seaborn as sns

df = sns.load_dataset('Titanic')

plot = sns.catplot(kind='box', data=df, y='fare')
# 设置wrap=True让标题自动换行
plot.set(title='Lorem ipsum dolor sit amet, consetetur sadipscing elitr', wrap=True)
plot.tight_layout()
plot.figure.show()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 21:55:13