如何使用sns.relplot()为分面图统一设置仅y轴下限为0
解决方法
- 问题核心原因有两点:
sns.relplot生成的FacetGrid默认开启y轴共享(sharey=True),该模式下全局统一y轴范围,天然不支持各子图y轴刻度独立- 共享y轴的场景下给
facet_kws传ylim=(0, None)时,None不会被识别为「自适应上限」,会被默认填充为最小值附近的数值,才会出现上限被限制为1的异常表现
- 正确实现代码如下:
g = sns.relplot( data=data, x="x", y="y", col="row_separator", row="col_separator", kind="line", sharey=False # 关键参数:关闭y轴共享,允许各子图y轴范围独立 ) # 给所有子图统一设置y轴下限为0,上限自适应各自数据范围 g.set(ylim=(0, None))
- 如果需要更精细化的控制,也可以遍历所有子图逐个设置,效果完全一致:
for ax in g.axes.flat: ax.set_ylim(bottom=0)
内容的提问来源于stack exchange,提问作者ccccc
相关产品推荐
相关产品推荐

