• Seaborn 回归(Regression)及矩阵(Matrix)绘图


    Seaborn中的回归包括回归拟合曲线图以及回归误差图。
    Matrix图主要是热度图。

    1. 回归及矩阵绘图API概述

    seaborn中“回归”绘图函数共3个:

    lmplot(回归统计绘图):figure级regplot函数,绘图同regplot完全相同。(lm指linear model)
    + regplot:axes级函数。绘制线性回归拟合。
    + residplot:axes级函数。绘制线性回归的误差图。(不能用lmplot绘制resid图)

    seaborn中矩阵绘图函数共有2个:

    • heatmap:axes级函数。热度图,绘制一个颜色块矩阵。
    • clustermap:figure级函数。聚合热度图,绘制一个分层聚合的热度图。

    figure级函数与axes级函数区别见Seaborn系列(一):绘图基础、函数分类、长短数据类型支持

    2. 回归统计绘图

    2.1 lmplot、regplot绘图

    • sns.lmplot(x=None,y=None,data=None):绘制线性回归拟合图,返回FacetGrid
    • sns.regplot(x=None,y=None,data=None)绘制线性回归拟合图,返回Axes
      • hue:分系列用不同的颜色绘制
      • col,row:指定参数不同值绘制到不同的行或列。
      • ci=95:置信区间的大小,取值0-100
      • order:指定拟合多项式阶数
      • scatter:是否绘制散点图
      • x_jitter,y_jitter:为x变量或y变量添加随机噪点。会导致绘制的散点移动,不会改变原始数据。
      • x_estimator:参数值为函数,如np.mean。对每个x值的所有y值用函数计算,绘制得到的点,并绘制误差线。
      • x_bins:当x不是离散值时x_estimator可以配合x_bins指定计算点和误差线数量
      • robust:对异常值降低权重
      • logistic:logistic=True时,假设y取值只有2个比如True和False,并用statsmodels中的逻辑回归模型回归。

    sns.lmplot(data=tips, x="total_bill", y="tip")

    regplot1_lmplot

    hue、col、row参数与其他函数用法相同

    sns.lmplot(data=tips, x="total_bill", y="tip", hue="sex", col="smoker")

    regplot2_hue_col

    图中拟合直线旁边透明颜色带是回归估计的置信区间,默认置信区间为95%。ci参数可以设置置信区间,ci取None则不绘制置信区间。

    sns.lmplot(data=tips, x="total_bill", y="tip", ci=50)

    regplot3_ci

    sns.lmplot(data=tips, x="total_bill", y="tip", order=3)

    regplot3_order

    sns.lmplot(data=tips, x="total_bill", y="tip", scatter=False)

    regplot3_scatter

    x_jitter会随机改变图中散点的x坐标,y_jitter会随机改变图中散点的y坐标。

    sns.lmplot(data=tips, x="total_bill", y="tip", y_jitter=10)

    regplot4_jitter

    sns.lmplot(data=tips, x="total_bill", y="tip", x_estimator=np.mean, x_bins=4)

    regplot5_x_estimator_bins

    ``

    robust参数为True时,会降低异常值的权重,在需要剔除异常值时,非常有用。
    但是使用robust后,计算量会比较大,通常建议取ci=None加速。
    注意robust参数需要安装statsmodels模块。

    1. import matplotlib.pyplot as plt
    2. import seaborn as sns
    3. ans = sns.load_dataset("anscombe")
    4. dat = ans.loc[ans.dataset == "III"]
    5. sns.lmplot(data=dat, x="x", y="y", robust=True, ci=None)
    6. plt.show()

    2.2 residplot绘图

    • sns.residplot(x=None,y=None,data=None)绘制线性回归拟合图的残差
      • order:回归拟合阶数
      • robust:对异常值降低权重
      • dropna:忽略空值
    1. sns.residplot(data=tips, x="total_bill", y="tip")

    residplot

    3. 矩阵图

    3.1 heatmap热力图

    • sns.residplot(data):绘制热力图
      • annot:在单元格内显示数据。
      • fmt:设置annot参数数据显示格式。
      • cbar:是否显示颜色条。
      • cmap:设置colormap。
      • square:单元格是否方形。
      • linewidths:设置单元格线条宽度。
      • linecolor:设置单元格线条颜色。
    1. import matplotlib.pyplot as plt
    2. import seaborn as sns
    3. import numpy as np
    4. data = np.random.rand(10, 10)
    5. sns.heatmap(data=data)
    6. plt.show()

    heatmap1

    1. sns.heatmap(data=data, annot=True, fmt=".2f")

    heatmap2_annot

    1. sns.heatmap(data=data, cmap="hsv", cbar=False, linewidths=0.5, linecolor="w")

    heatmap3_style

    3.2 clustermap分层聚合热力图

    1. import matplotlib.pyplot as plt
    2. import seaborn as sns
    3. import numpy as np
    4. data = np.random.rand(10, 10)
    5. sns.clustermap(data=data)
    6. plt.show()

    clustermap

    clustermap说明详见Python可视化matplotlib&seborn15-聚类热图clustermap(建议收藏) - 知乎

  • 相关阅读:
    glTF格式详解
    vscode 通过ssh 连接虚拟机vmware(ubuntu)
    基于ssm的人事管理系统
    【GPT-2】论文解读:Language Models are Unsupervised Multitask Learners
    swagger工具编写接口文档
    phpcms V9实战标签代码记录 - list
    网络基础知识100问!答完秒变网络高手,你能答对多少题?
    【线性代数基础进阶】矩阵-补充+练习
    人工智能CV应用现状与发展 - 讲座记录
    项目管理:敏捷开发之十大误区
  • 原文地址:https://blog.csdn.net/qq_19734597/article/details/134457165