如何为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
相关产品推荐
相关产品推荐

