箱式图 添加异常值平均值_学习 seaborn [03]: 线性回归图

线性关系可视化

此线性可视化并非统计关系中的折线图,而是excel做图中的趋势线概念,对x、y关系进行线性拟合得到关系式,对关系式的绘图。

seaborn的线性可视化不直接提供拟合关系式的各具体参数,只绘制出趋势线和置信区间,从而引导和帮助进行数据关系探索。

主要用到两个函数:

  • lmplot():FacetGrid级函数,可绘制多子图;将data作为必须参数,x和y变量必须被指定为字符串。
  • regplot():轴级函数。x和y可以是简单的 numpy 数组,pandas Series对象,或者作为对传递给data的 pandas DataFrame对象。
import seaborn as sns
import pandas as pd
import numpy as np
%matplotlib inline

sns.set()
tips = pd.read_csv('seaborn-data-master/tips.csv')
display(tips)

6d7185e81eccc3d05f99caff3be0bdf0.png
g = sns.lmplot(x="total_bill", y="tip", data=tips)

6bab6d42db13d9a120d15d997f501a02.png

添加散点分布的抖动

当一个变量采用离散值,也可以拟合线性回归,但生成的简单散点图中点元素会互相重叠,视觉上类似直线。可以给离散量添加随机抖动,以使点分布更清晰。这种抖动只影响散点分布,不影响趋势线。

x_jitter控制x轴方向的随机抖动

g = sns.lmplot(x="size", y="tip", x_jitter=0.05, data=tips)

ebb9675a477c2c40343d690ebba3d5e1.png

或者绘制每个离散组中的观测值。

x_estimator转递一个函数来控制选择哪种方法进行观测值的估计,可以用平均值、中位数等。

g = sns.lmplot(x="size", y="tip", x_estimator=np.mean, data=tips)

c939d115195e576a371cd7e22980dada.png

高阶关系拟合

有些数据的趋势线并非一次线性函数,可能是二次或多次函数,绘图时候需要指明趋势线的阶数。

order制定阶数

anscombe = pd.read_csv('seaborn-data-master/anscombe.csv')
g = sns.lmplot(x='x', y='y', data=anscombe.query("dataset == 'II'"),
           ci=None, order=2)

8fed365d9b42630b2c4fd845546874fb.png

去除异常值绘制趋势线

数据集若存在异常值,使拟合的趋势线偏离数据的主要关系,绘图时候需要去除异常值的影响。

robust参数控制是否剔除异常值。如果取值True则采用稳健回归,剔除异常值。

g = sns.lmplot(x='x', y='y', data=anscombe.query("dataset == 'III'"),
           ci=None, robust=True)

704a31e68692fc49cbc04384fe43252f.png

绘制多子图

因为lmplot()是FacetGrid级别的函数,所以可以绘制多子图。

使用rowcol参数控制行列数。

使用hue控制不同子集的颜色。

g = sns.lmplot(x='total_bill', y='tip', hue='smoker',
           col='time', row='sex', data=tips)

ea8f08d6f1bb064bff2b04a4c88f7102.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值