You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

seaborn relplot绘制二值变量时如何调整x轴仅显示0和1刻度

问题说明

从pandas DataFrame中提取bmi和heart_disease两个字段,计划使用relplot展示二者关系——这类图表可以呈现其他图表类型会丢失的信息。
初始使用的代码:

facetObj = sns.relplot(x="heart_disease", y="bmi", data=data)
facetObj

已知heart_disease字段仅包含0、1两个取值,但生成的图表x轴显示了0到1区间的完整连续数值,需要调整设置让x轴仅显示0和1两个取值。
对应生成的示例图:
relplot默认连续x轴效果

解决方案

问题根源是seaborn默认将数值型的heart_disease识别为连续数值变量,因此自动生成了连续刻度,两种可直接复用的解决方式:

  • 方式1:绘图后手动指定x轴刻度
    不需要修改原数据,在原有代码后加一行设置x轴刻度的代码即可,仅保留0、1两个刻度位:
    facetObj = sns.relplot(x="heart_disease", y="bmi", data=data)
    # 指定x轴显示的刻度值
    facetObj.set(xticks=[0, 1])
    facetObj
    
  • 方式2:将字段标记为分类类型
    绘图时临时将heart_disease转换为分类类型,seaborn会自动识别离散取值,不会生成连续刻度:
    # 临时转换x轴字段为分类类型,不修改原数据
    facetObj = sns.relplot(x=data["heart_disease"].astype("category"), y="bmi", data=data)
    facetObj
    

内容的提问来源于stack exchange,提问作者Programming Noob

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 22:36:23