seaborn.lmplot(
复杂曲线拟合:
order : int, 所拟合曲线的阶数,大于1时使用numpy.polyfit进行曲线拟合
logistic : bool, 是否拟合logistic回归曲线
lowess : bool, 是否拟合lowess曲线
robust : bool, 是否拟合稳健回归
logx : bool, 是否拟合y ~ log(x)的对数曲线,但仍按照原始的x/y数值输出
)
# 第一次使用时需要联网下载数据文件
# 联网有问题直接至此下载:https://github.com/mwaskom/seaborn-data
# 数据拖入用户目录内的seaborn-data文件夹(也就是和desktop目录平级)即可
anscombe = sns.load_dataset("anscombe")
anscombe.head()
sns.lmplot(x="x", y="y", data=anscombe.query("dataset == 'I'"),
ci=None)
sns.lmplot(x="x", y="y", data=anscombe.query("dataset == 'II'"),
ci=None)
# 直接指定拟合高次项
sns.lmplot(x="x", y="y", data=anscombe.query("dataset == 'II'"),
order=2, ci=None)
# 生成所需的高次项
# 使用copy生成数据副本,避免警告
data2 = anscombe.query("dataset == 'II'").copy()
data2['x2'] = (data2.x - 9)**2
data2
# 在回归模型中控制高次项,0.9版本会报错,老版本可以运行
sns.lmplot(x = "x", y = "y", data = data2, y_partial = 'x2')
sns.lmplot(x="x", y="y", data=anscombe.query("dataset == 'III'"),
ci=None)
# 拟合稳健回归模型
sns.lmplot(x="x", y="y", data=anscombe.query("dataset == 'III'"),
robust=True, ci=None)
ccss.O1.value_counts()
ccss['O1logic'] = ccss.O1 == '有'
ccss.O1logic.value_counts()
# 拟合logistic回归曲线
sns.lmplot(x="s3", y="O1logic", data=ccss, logistic=True)
# 拟合lowess曲线
sns.lmplot(x = "s3", y="index1", data=ccss, lowess=True)
# 放大回归细节以便观察
sns.lmplot(x = "s3", y="index1", data=ccss, lowess=True)
plt.ylim(80,110)