能否在Seaborn的lmplot中添加多条不同阶数的拟合曲线?
在同一张图中叠加Seaborn不同阶数的拟合曲线
因为lmplot是Figure级别的绘图函数,每次调用都会创建新画布,无法直接叠加曲线。你可以改用Axes级别的regplot函数,它支持在同一坐标轴上多次绘制不同阶数的拟合线,具体实现如下:
import seaborn as sns import matplotlib.pyplot as plt # 加载数据集 tips = sns.load_dataset("tips") # 创建画布和坐标轴 fig, ax = plt.subplots() # 绘制1阶拟合曲线,设置颜色和标签 sns.regplot(x="total_bill", y="tip", order=1, ci=None, truncate=True, data=tips, ax=ax, color="blue", label="Order 1") # 绘制5阶拟合曲线,设置颜色和标签 sns.regplot(x="total_bill", y="tip", order=5, ci=None, truncate=True, data=tips, ax=ax, color="red", label="Order 5") # 添加图例 ax.legend() # 显示图形 plt.show()
关键说明:
regplot和lmplot核心功能一致,但前者是Axes级函数,可通过ax参数指定绘图的坐标轴,因此能在同一轴上叠加多条曲线。- 用
color参数区分曲线颜色,label参数定义图例文本,最后调用ax.legend()生成图例。 - 保留了你原代码中的
ci=None(不显示置信区间)和truncate=True(截断拟合线至数据范围)参数,确保效果与原绘图一致。
内容的提问来源于stack exchange,提问作者Quinten
相关产品推荐
相关产品推荐

