使用Seaborn Displot绘制不同尺度特征,sharex参数失效问题排查
问题解决:displot设置独立x轴不生效的原因及修正
你的问题出在参数传递方式上:sharex=False不需要放在facet_kws里,displot函数本身支持直接传入sharex参数。你之前的写法没有正确传递参数,导致子图仍然共享x轴范围,尺度差异大的特征(比如D列)无法显示合适的x轴区间。
修正后的代码
import numpy as np import pandas as pd import seaborn as sns import random # 示例数据集 df = pd.DataFrame(np.random.randint(0,200,size=(200, 3)), columns=list('ABC')) D= np.random.randint(0,10,size=(200, 1)) df['D']= D # 重塑数据框 df2 = df.stack().reset_index(level=1).reset_index(drop=True).\ rename(columns={'level_1': 'Name', 0: 'Value'}) # 绘图:直接传入sharex=False g = sns.displot(data=df2, x='Value', col='Name', col_wrap=3, kde=True, sharex=False)
补充说明
displot是Seaborn的高层绘图函数,已经将sharex、sharey这类分面基础参数直接暴露在外,无需通过facet_kws传递。只有当你需要对FacetGrid进行更底层的自定义设置(比如子图标题样式、坐标轴标签格式等)时,才需要使用facet_kws参数。
内容的提问来源于stack exchange,提问作者Rebecca James
相关产品推荐
相关产品推荐

