函数:seaborn.regplot
常用参数:
x,y | array,str,series,如果是字符串应该是data中对应的属性名,使用series将会在轴上显示名称。 |
data | dataframe |
x_estimator | 接收可调用的映射对象,应用于每一个x的值并绘制估计图形,如果输入x_ci,将会绘制一个置信区间。默认为False |
x_ci | 接收“ci""sd",0-100的int,表示离散值集中趋势的置信区间大小,默认为None |
ci | 0-100 int,y轴置信区间大小。 |
scatter | bool,是否绘制散点图 |
logistic | bool.是否使用逻辑回归 |
lowess | bool,是否使用局域回归 |
robust | bool,是否使用稳定回归 |
logx | bool,是否使用对数回归 |
{x,y}_jitter | float,在x与y变量中添加均匀随机噪声,只改变图形外观。 |
使用逻辑回归等非默认回归时,需要提前安装statesmodels模块与pasty模块。
修改置信区间范围:
tips=sns.load_dataset('tips')
fig,axes=plt.subplots(1,2,figsize=(8,4))
#修改置信区间范围
sns.regplot(x='total_bill',y='tip',data=tips,ax=axes[0])
sns.regplot(x='total_bill',y='tip',data=tips,ci=50,ax=axes[1])
添加随机噪声的“抖动”:
fig,axes=plt.subplots(1,2,figsize=(8,4))
sns.regplot(x='size',y='tip',data=tips,ax=axes[0])
sns.regplot(x='size',y='tip',data=tips,x_jitter=0.1,ax=axes[1])
仅绘制均值和置信区间:
fig,axes=plt.subplots(1,2,figsize=(8,4))
sns.regplot(x='size',y='tip',data=tips,ax=axes[0])
sns.regplot(x='size',y='tip',data=tips,x_estimator=np.mean,ax=axes[1])
使用对数回归:
fig,axes=plt.subplots(1,2,figsize=(8,4))
sns.regplot(x='size',y='tip',data=tips,x_estimator=np.mean,ax=axes[0])
sns.regplot(x='size',y='tip',data=tips,x_estimator=np.mean,logx=True,ax=axes[1])
拟合高阶多项式回归:
ans=sns.load_dataset("anscombe")
fig,axes=plt.subplots(1,2,figsize=(8,4))
sns.regplot(x="x",y="y",data=ans.loc[ans.dataset=='II'],order=1,ci=None,ax=axes[0])
sns.regplot(x="x",y="y",data=ans.loc[ans.dataset=='II'],order=2,ci=None,ax=axes[1])
拟合稳健回归,并关掉置信区间(因为逻辑回归和稳健回归相较于简单线性回归需要更大的计算量,关掉置信区间可以提高速度):
sns.regplot(x="x",y="y",data=ans.loc[ans.dataset=='III'],robust=True,ci=None)
函数:seaborn.lmplot
语法结构几乎与regplot相同。lmplot是将regplot与FacetGrid结合,能够绘制三变量图形和修改全局高宽比。但是该函数的输入数据只能是特征名,这就要求数据必须规范。
特殊的参数:
hue,col,row | 将在不同的构面绘图,默认为None |
data | |
palette | 用于hue变量不同类别的颜色。 |
height | float,每个刻面的高度,默认为5. |
aspect | float,每个刻面的宽度,默认为1 |
share{x,y} | bool,“col”,“row",表示是否共享x或y轴。 |
sns.lmplot(x="total_bill",y="tip",hue="smoker",data=tips,markers=["o","x"])
分开绘制:
sns.lmplot(x="total_bill",y="tip",col="smoker",data=tips)
修改构面高宽比:
sns.lmplot(x="total_bill",y="tip",hue="time",col="smoker",data=tips,height=4,aspect=0.8)
绘制一个回归网格图:
sns.lmplot(x="total_bill",y="tip",row="time",col="smoker",data=tips)