前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >数据可视化(18)-Seaborn系列 | 线性回归图regplot()

数据可视化(18)-Seaborn系列 | 线性回归图regplot()

原创
作者头像
数据分析可视化
修改2019-10-08 11:15:50
5.3K0
修改2019-10-08 11:15:50
举报
文章被收录于专栏:数据分析与可视化

线性回归图

利用线性回归模型对数据进行拟合。

函数原型

代码语言:txt
复制
seaborn.regplot(x, y, data=None,x\_estimator=None, 

                x\_bins=None,x\_ci='ci', scatter=True,

                fit\_reg=True, ci=95, n\_boot=1000,

                units=None, order=1, logistic=False,

                lowess=False, robust=False, logx=False,

                x\_partial=None, y\_partial=None,

                truncate=False, dropna=True,

                x\_jitter=None, y\_jitter=None, label=None,

                color=None, marker='o', scatter\_kws=None,

                line\_kws=None, ax=None)

参数解读

案例教程

代码语言:txt
复制
import seaborn as sns
import matplotlib.pyplot as plt
# 设置风格样式
sns.set(color_codes=True)
# 构建数据
tips = sns.load_dataset("tips")
"""
案例1:
绘制双变量的线性关系
"""
sns.regplot(x="total_bill", y="tip", data=tips)
plt.show()
代码语言:txt
复制
import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np
# 设置风格样式
sns.set(color_codes=True)
# 构建数据
np.random.seed(8)
mean, cov = [4, 6], [(1.5, .7), (.7, 1)]
x, y = np.random.multivariate_normal(mean, cov, 80).T
"""
案例2:
构建随机数据,绘制双变量的线性关系
"""
sns.regplot(x=x, y=y, color="g")
plt.show()
代码语言:txt
复制
import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
# 设置风格样式
sns.set(color_codes=True)
# 构建数据
np.random.seed(8)
mean, cov = [4, 6], [(1.5, .7), (.7, 1)]
x, y = np.random.multivariate_normal(mean, cov, 80).T
x, y = pd.Series(x, name="x_var"), pd.Series(y, name="y_var")
"""
案例3:
构建随机数据,并对数据Series,并指定x,y对应的变量名,绘制双变量的线性关系
"""
sns.regplot(x=x, y=y, marker="+")
plt.show()
代码语言:txt
复制
import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
# 设置风格样式
sns.set(color_codes=True)
# 构建数据
np.random.seed(8)
mean, cov = [4, 6], [(1.5, .7), (.7, 1)]
x, y = np.random.multivariate_normal(mean, cov, 80).T
x, y = pd.Series(x, name="x_var"), pd.Series(y, name="y_var")
"""
案例4:
参考案例3,并设置ci=68:使用68%的置信区间,该区间对应于估计的标准误差
"""
sns.regplot(x=x, y=y, ci=68)
plt.show()
代码语言:txt
复制
import seaborn as sns
import matplotlib.pyplot as plt
# 设置风格样式
sns.set(color_codes=True)
# 构建数据
tips = sns.load_dataset("tips")
"""
案例5:
根据数据的实际情况,指定按x轴进行分组,
并对x轴分组数据增加一些抖动(x_jitter=.1)
"""
sns.regplot(x="size", y="total_bill", 
            data=tips, x_jitter=.1)
plt.show()
代码语言:txt
复制
import seaborn as sns
import matplotlib.pyplot as plt
# 设置风格样式
sns.set(color_codes=True)
# 构建数据
tips = sns.load_dataset("tips")
"""
案例6:
根据数据的实际情况,指定按x轴进行分组,只显示每一分组数据的均值和置信区间
"""
sns.regplot(x="size", y="total_bill", 
            data=tips,x_estimator=np.mean)
plt.show()
代码语言:txt
复制
import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
# 设置风格样式
sns.set(color_codes=True)
# 构建数据
np.random.seed(8)
mean, cov = [4, 6], [(1.5, .7), (.7, 1)]
x, y = np.random.multivariate_normal(mean, cov, 80).T
x, y = pd.Series(x, name="x_var"), pd.Series(y, name="y_var")
"""
案例7:
将连续变量绘制成不连续的区域
"""
sns.regplot(x=x, y=y, x_bins=4)
plt.show()
代码语言:txt
复制
import seaborn as sns
import matplotlib.pyplot as plt
# 设置风格样式
sns.set(color_codes=True)
# 构建数据
ans = sns.load_dataset("anscombe")
"""
案例8:
拟合高阶多项式回归并阶段模型预测
"""
sns.regplot(x="x", y="y",
            data=ans.loc[ans.dataset == "II"],
            scatter_kws={"s": 80},
            order=2, ci=None, truncate=True)
plt.show()
代码语言:txt
复制
import seaborn as sns
import matplotlib.pyplot as plt
# 设置风格样式
sns.set(color_codes=True)
# 构建数据
ans = sns.load_dataset("anscombe")
"""
案例9:
拟合稳健回归,不要置信区间
"""
sns.regplot(x="x", y="y", 
            data=ans.loc[ans.dataset == "III"],
            scatter_kws={"s": 80},
            robust=True, ci=None)
plt.show()
代码语言:txt
复制
import seaborn as sns
import matplotlib.pyplot as plt
# 设置风格样式
sns.set(color_codes=True)
# 构建数据
tips = sns.load_dataset("tips")
tips["big_tip"] = (tips.tip / tips.total_bill) > .175
"""
案例10:
拟合logistic 回归(logistic=True),
对y轴数据进行抖动(y_jitter=.03),
并进行适当的迭代(n_boot=500)
"""
sns.regplot(x="total_bill", y="big_tip", 
            data=tips,logistic=True, 
            n_boot=500, y_jitter=.03)
plt.show()
代码语言:txt
复制
import seaborn as sns
import matplotlib.pyplot as plt
# 设置风格样式
sns.set(color_codes=True)
# 构建数据
tips = sns.load_dataset("tips")
"""
案例11:
使用log(x)拟合回归模型,并阶段模型预测
"""
sns.regplot(x="size", y="total_bill", 
            data=tips,x_estimator=np.mean, 
            logx=True, truncate=True)
plt.show()

案例地址

案例代码已上传:Github https://github.com/Vambooo/SeabornCN

整理制作:数据分析与可视化学研社

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 线性回归图
  • 函数原型
  • 参数解读
  • 案例教程
  • 案例地址
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档