当前位置: 首页 > article >正文

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模块。

<span style="color:#333333"><span style="background-color:#f9f5e9"><code>import matplotlib.pyplot as plt
import seaborn as sns
ans = sns.load_dataset("anscombe")
dat = ans.loc[ans.dataset == "III"]

sns.lmplot(data=dat, x="x", y="y", robust=True, ci=None)

plt.show()
</code></span></span>

2.2 residplot绘图

  • sns.residplot(x=None,y=None,data=None)绘制线性回归拟合图的残差
    • order:回归拟合阶数
    • robust:对异常值降低权重
    • dropna:忽略空值
<span style="color:#333333"><span style="background-color:#f9f5e9"><code>sns.residplot(data=tips, x="total_bill", y="tip")
</code></span></span>

residplot

3. 矩阵图

3.1 heatmap热力图

  • sns.residplot(data):绘制热力图
    • annot:在单元格内显示数据。
    • fmt:设置annot参数数据显示格式。
    • cbar:是否显示颜色条。
    • cmap:设置colormap。
    • square:单元格是否方形。
    • linewidths:设置单元格线条宽度。
    • linecolor:设置单元格线条颜色。
<span style="color:#333333"><span style="background-color:#f9f5e9"><code>import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np
data = np.random.rand(10, 10)

sns.heatmap(data=data)

plt.show()
</code></span></span>

heatmap1

<span style="color:#333333"><span style="background-color:#f9f5e9"><code>sns.heatmap(data=data, annot=True, fmt=".2f")
</code></span></span>

heatmap2_annot

<span style="color:#333333"><span style="background-color:#f9f5e9"><code>sns.heatmap(data=data, cmap="hsv", cbar=False, linewidths=0.5, linecolor="w")
</code></span></span>

heatmap3_style

3.2 clustermap分层聚合热力图

<span style="color:#333333"><span style="background-color:#f9f5e9"><code>import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np
data = np.random.rand(10, 10)

sns.clustermap(data=data)

plt.show()
</code></span></span>

clustermap

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


http://www.kler.cn/a/134570.html

相关文章:

  • 安全见闻1-5
  • 【QT常用技术讲解】优化网络链接不上导致qt、qml界面卡顿的问题
  • 解锁微前端的优秀库
  • 将Excel文件的两个表格经过验证后分别读取到Excel表和数据库
  • 【VIM】vim 常用命令
  • Go语言 实现将中文转化为拼音
  • R语言实现多变量孟德尔随机化分析(1)
  • 在IDEA中的DeBug调试技巧
  • Pycharm中添加Python库指南
  • MR外包团队:MR、XR混合现实技术应用于游戏、培训,心理咨询、教育成为一种创新的各行业MR、XR形式!
  • 学习c#的第二十二天
  • AnimateDiff搭配Stable diffution制作AI视频
  • vite vue3配置eslint和prettier以及sass
  • OpenWrt环境下,由于wget不支持ssl/tls导致执行opkg update失败的解决方法
  • internet download manager2024中文绿色版(IDM下载器)
  • ): error C2039: “swish_param“: 不是 “caffe::LayerParameter“ 的成员
  • (Transfer Learning)迁移学习在IMDB上训练情感分析模型
  • QT下使用QChart绘制曲线
  • [和ChatGPT学编程]Python Requests 简介
  • 基于Springboot的地方美食分享网站(有报告)。Javaee项目,springboot项目。
  • Vue学习笔记-插槽
  • 设计师如何整理自己的素材优漫教育
  • NC Cloud uploadChunk文件上传漏洞复现
  • Redis数据类型–Geospatial 地理空间
  • OpenCV中的像素重映射原理及实战分析
  • 常用linux命令