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

Seaborn lmplot多元回归显示异常:分组回归曲线无法渲染

解决Seaborn lmplot分组后不显示回归曲线的问题

嘿,我来帮你搞定这个问题~你的代码逻辑本身是没问题的,理论上应该能画出对应smoker两个分组的两条回归线。看不到曲线大概率是以下两个原因之一:

1. 缺少绘图显示的关键步骤

如果你是在普通Python脚本里运行这段代码,Seaborn不会自动弹出绘图窗口,必须手动调用matplotlib的plt.show()来触发图像显示。

修改后的完整可运行代码:

import seaborn as sns
import matplotlib.pyplot as plt

sns.set_theme(color_codes=True)
tips = sns.load_dataset("tips")
g = sns.lmplot(x="total_bill", y="tip", hue="smoker", data=tips, palette="Set1")
plt.show()  # 这一行是核心:手动触发图像显示

如果是在Jupyter Notebook里运行,记得先加上%matplotlib inline魔法命令(或者用%matplotlib notebook),确保图像能在单元格内正常显示。

2. Seaborn版本过旧导致的兼容性问题

如果已经加了plt.show()还是看不到回归线,那可能是你的Seaborn版本太低了。旧版本的lmplot在处理hue分组的回归曲线时可能存在bug。建议更新到最新版本:

pip install --upgrade seaborn

额外验证方法

你可以用sns.regplot分别绘制两个分组的回归曲线,确认数据本身是支持回归拟合的:

import seaborn as sns
import matplotlib.pyplot as plt

sns.set_theme(color_codes=True)
tips = sns.load_dataset("tips")

# 绘制非吸烟组的回归线
sns.regplot(x="total_bill", y="tip", data=tips[tips["smoker"] == "No"], color="#e41a1c")
# 绘制吸烟组的回归线
sns.regplot(x="total_bill", y="tip", data=tips[tips["smoker"] == "Yes"], color="#377eb8")

plt.legend(["Non-smoker", "Smoker"])
plt.show()

这样操作后,你应该就能看到对应分组的回归曲线啦~

内容的提问来源于stack exchange,提问作者Christopher Creveling

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 07:28:55