使用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
相关产品推荐
相关产品推荐

