import matplotlib as mpl
import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np
import pandas as pd
tips = pd.read_csv('../Data/tips.csv')
Seaborn:regplot¶
seaborn.regplot — seaborn 0.13.2 documentation
sns,regplot(data=None, *, x=None, y=None, x_estimator=None, x_bins=None, x_ci='ci', scatter=True, fit_reg=True, ci=95, n_boot=1000, units=None, seed=None, order=1, logistic=False, lowess=False, robust=False, logx=False, x_partial=None, y_partial=None, truncate=True, dropna=True, x_jitter=None, y_jitter=None, label=None, color=None, marker='o', scatter_kws=None, line_kws=None, ax=None)
绘制数据和回归模型拟合。估计回归模型有多种互斥选项。
-
**x_estimator:**将此函数应用于
x的唯一值,并绘制估计结果。当x为离散变量时,这很有用。如果提供了x_ci参数,此估计将进行自助法重采样,并绘制置信区间。 -
**x_bins:**将
x变量分箱为离散箱,然后估计中心趋势和置信区间。此分箱仅影响散点图的绘制;回归仍然拟合原始数据。此参数可以是均匀大小(不一定是均匀间隔)的箱数量或箱中心的位置。当使用此参数时,意味着x_estimator的默认值为numpy.mean。 -
**x_ci:**绘制离散值中心趋势时使用的置信区间大小。如果
"ci"(默认),则使用ci参数的值。如果"sd",则跳过自助法,显示每个分箱中观测值的标准差。也可以直接设置为置信区间大小([0, 100]内的整数)。 -
**ci:**回归估计的置信区间大小([0, 100]内的整数)。这将在回归线周围绘制半透明带。置信区间使用自助法估计;对于大型数据集,为了避免该计算,建议将此参数设置为
None。默认为95。 -
**scatter:**如果
True(默认),绘制底层观测值(或x_estimator计算的值)的散点图。 -
**fit_reg:**如果
True(默认),估计并绘制与x和y变量相关的回归模型。 -
**truncate:**如果
True(默认),回归线被限制在数据范围内。 -
order:**如果
order大于1,则使用numpy.polyfit来估计**多项式回归。默认为1,即估计**线性回归**。 -
**logistic:**如果
True,则假设y是一个二元变量,并使用statsmodels来估计**逻辑回归**模型。请注意,这与线性回归相比计算量要大得多,因此可能要减少n_boot或将ci设置为None。默认False。 -
lowess:**如果
True,则使用statsmodels估计**非参数lowess模型(局部加权线性回归)。请注意,目前无法为此类模型绘制置信区间。默认False。 -
robust:**如果
True,则使用statsmodels来估计**robust回归。这将降低异常值的权重。请注意,这比标准线性回归计算量要大得多,因此同样要减少n_boot或将ci设置为None。默认False。 -
logx:**如果
True,则估计**形式为\(y \sim log(x)\)的线性回归,但以输入空间绘制散点图和回归模型。请注意,x必须为正数才能使用此功能。默认False。 -
**x_partial,y_partial:**在绘图之前,将混杂变量回归出
x或y变量。 -
**x_jitter,y_jitter:**向
x或y变量添加此大小的均匀随机噪声。噪声添加到拟合回归后的数据副本中,仅影响散点图的外观。当绘制取离散值的变量时,这可能很有帮助。 -
**label:**应用到散点图或回归线(如果
scatter是False)的图例标签。 -
**color:**应用到所有绘图元素的颜色;将被传给
scatter_kws或line_kws的颜色覆盖。 -
**marker:**用于散点图的标记。默认'o'。
-
**scatter_kws,line_kws:**传递给
plt.scatter和plt.plot的额外关键字参数。
fig = plt.figure(figsize=(8, 8), dpi=100, layout="constrained")
ax = fig.add_subplot(1, 1, 1)
sns.regplot(data=tips,
x='tip',
y='total_bill',
scatter=True,
marker='o',
scatter_kws={'color': 'red'},
x_partial=None,
y_partial=None,
x_jitter=None,
y_jitter=None,
dropna=True,
fit_reg=True,
order=1,
# logistic=True,
# lowess=True,
# robust=True,
# logx=True,
truncate=True,
line_kws={'color': 'blue'},
label='total_bill',
ax=ax
)
"""
<Axes: xlabel='tip', ylabel='total_bill'>
"""
ax.legend()
plt.show()
fig = plt.figure(figsize=(8, 8), dpi=100, layout="constrained")
ax = fig.add_subplot(1, 1, 1)
sns.regplot(data=tips,
x='tip',
y='total_bill',
scatter=True,
marker='o',
scatter_kws={'color': 'red'},
x_estimator=np.mean,
x_bins=20,
x_ci='ci',
ci=95,
n_boot=1000,
seed=0,
units=None,
x_partial=None,
y_partial=None,
x_jitter=None,
y_jitter=None,
dropna=True,
fit_reg=True,
order=1,
# logistic=True,
# lowess=True,
# robust=True,
# logx=True,
truncate=True,
line_kws={'color': 'blue'},
label='total_bill',
ax=ax
)
"""
<Axes: xlabel='tip', ylabel='total_bill'>
"""
ax.legend()
plt.show()
Seaborn:lmplot¶
seaborn.lmplot — seaborn 0.13.2 documentation
sns.lmplot(data, *, x=None, y=None, hue=None, col=None, row=None, palette=None, col_wrap=None, height=5, aspect=1, markers='o', hue_order=None, col_order=None, row_order=None, legend=True, x_estimator=None, x_bins=None, x_ci='ci', scatter=True, fit_reg=True, ci=95, n_boot=1000, units=None, seed=None, order=1, logistic=False, lowess=False, robust=False, logx=False, x_partial=None, y_partial=None, truncate=True, x_jitter=None, y_jitter=None, scatter_kws=None, line_kws=None, facet_kws=None)
在FacetGrid上绘制数据点和回归模型拟合。此函数结合了regplot()和FacetGrid。它旨在为在数据集的条件子集上拟合回归模型提供一个方便的接口。
在考虑如何将变量分配给不同facet时,一个普遍的规则是,对于最重要的比较,应使用hue,然后是col和row。然而,始终要考虑特定数据集和正在创建的可视化目标。
- **markers:**散点图的标记。如果是一个列表,列表中的每个标记将用于
hue变量的每个级别。
sns.lmplot(data=tips,
x='tip',
y='total_bill',
hue='smoker',
hue_order=['Yes', 'No'],
palette={"Yes": "#facc87", "No": "#b1fa87"},
row='time',
row_order=["Lunch", "Dinner"],
col='sex',
col_order=['Female', 'Male'],
scatter=True,
markers=['o', '*'],
scatter_kws=None,
x_partial=None,
y_partial=None,
x_jitter=None,
y_jitter=None,
fit_reg=True,
order=1,
# logistic=True,
# lowess=True,
# robust=True,
# logx=True,
truncate=True,
line_kws=None,
legend=True,
height=6,
aspect=1.5,
facet_kws={'sharex': True,
'sharey': True,
'margin_titles': True,
'legend_out': True,
'despine': True}
)
"""
<seaborn.axisgrid.FacetGrid at 0x29fb55032c0>
"""
Seaborn:residplot¶
seaborn.residplot — seaborn 0.13.2 documentation
sns.residplot(data=None, *, x=None, y=None, x_partial=None, y_partial=None, lowess=False, order=1, robust=False, dropna=True, label=None, color=None, scatter_kws=None, line_kws=None, ax=None)
绘制线性回归的残差图。此函数将对y在x上进行回归(可能是robust回归或多项式回归),然后绘制残差散点图。可以可选地拟合一个lowess平滑器到残差图中,这有助于确定残差中是否存在结构。
fig = plt.figure(figsize=(8, 8), dpi=100, layout="constrained")
ax = fig.add_subplot(1, 1, 1)
sns.residplot(data=tips,
x='tip',
y='total_bill',
scatter_kws={'color': 'red'},
x_partial=None,
y_partial=None,
dropna=True,
order=1,
# lowess=True,
# robust=True,
line_kws={'color': 'blue'},
label='total_bill',
ax=ax
)
"""
<Axes: xlabel='tip', ylabel='total_bill'>
"""
ax.legend()
plt.show()




