求助:如何在Seaborn的lmplot中正确设置图形尺寸?
解决Seaborn lmplot忽略图形尺寸设置的问题
这个坑我之前踩过!你用sns.set(rc={'figure.figsize':(18,16)})没效果的原因是:lmplot是基于FacetGrid实现的,它会独立初始化图形尺寸,不会继承全局的figure.figsize配置。给你两种简单有效的解决方法:
方法1:直接在lmplot中指定尺寸参数
lmplot自带height和aspect两个参数来控制尺寸:
height:单个子图的高度(单位:英寸)aspect:子图的宽高比(整体宽度 = height × aspect)
如果你想要整体图形尺寸是18×16,只需要计算对应的参数值:
sns.lmplot( x='index', y='values', data=data.reset_index(), hue='data', height=16, # 对应目标高度16英寸 aspect=18/16 # 宽度=16×(18/16)=18英寸 )
方法2:获取FacetGrid对象后修改尺寸
先创建绘图对象,再通过set_size_inches()直接设置整体尺寸:
g = sns.lmplot(x='index', y='values', data=data.reset_index(), hue='data') g.fig.set_size_inches(18, 16) # 直接指定宽高
这两种方法都能完美覆盖lmplot的默认尺寸,你可以根据自己的习惯选择~
内容的提问来源于stack exchange,提问作者user8270077
相关产品推荐
相关产品推荐

