0

0

PythonSeaborn统计可视化教程_分类与回归图表实践

冷炫風刃

冷炫風刃

发布时间:2025-12-31 09:54:10

|

924人浏览过

|

来源于php中文网

原创

Seaborn可视化核心在于匹配数据类型与关系:分类变量间用countplot/catplot看频次分布,分类+数值用boxplot/violinplot对比分布,数值间用scatterplot/lmplot分析趋势,支持hue/col分组拟合回归线。

pythonseaborn统计可视化教程_分类与回归图表实践

用 Seaborn 做分类与回归可视化,关键不是堆函数,而是搞清数据类型和想表达的关系:分类变量之间看分布与差异,数值变量之间看趋势与拟合,而分类+数值组合则常用于分组对比。下面直接上实用场景和对应图表。

分类变量之间的关系:用 countplot 或 catplot 统计频次

比如调查不同性别(sex)和是否吸烟(smoker)的组合出现多少次,适合用柱状频次图。countplot 默认统计 x 轴变量的出现次数;若要同时观察两个分类变量,推荐用 catplot 搭配 kind='count',自动分面更清晰。

  • 代码示例:sns.catplot(data=tips, x='sex', hue='smoker', kind='count') —— 按性别分组,再用颜色区分吸烟状态
  • 注意:避免对高基数分类变量(如用户ID)直接 countplot,会挤成一团;可先聚合或筛选 top-N 类别
  • 若需百分比堆叠效果,可用 sns.histplot 配合 stat='percent'multiple='fill'

分类变量 vs 数值变量:用 boxplot、violinplot 或 swarmplot 对比分布

这是最常见需求:比如比较不同星期(day)的小费(tip)分布。boxplot 展示中位数、四分位距和异常值;violinplot 补充密度信息;swarmplot 显示每个点位置,适合样本量不大时。

  • 推荐组合:sns.catplot(data=tips, x='day', y='tip', kind='violin', inner='box') —— 小提琴轮廓 + 内嵌箱线
  • 若点太多重叠,加 dodge=True(配合 hue)或改用 stripplot 并设置 jitter=0.2
  • 注意顺序:默认按字母排,想按业务逻辑(如 Thu→Fri→Sat→Sun),传入 order=['Thu','Fri','Sat','Sun']

数值变量之间的关系:用 scatterplot 或 lmplot 揭示趋势与线性关联

比如分析总账单(total_bill)和小费(tip)是否正相关。scatterplot 展示原始散点;lmplot 自动添加回归线(含置信区间),并支持按分类变量分面或着色。

BgSub
BgSub

免费的AI图片背景去除工具

下载

立即学习Python免费学习笔记(深入)”;

  • 基础回归:sns.lmplot(data=tips, x='total_bill', y='tip', col='time') —— 分早/晚两列拟合
  • 想关闭置信带?加 ci=None;换高阶拟合?用 order=2(二次曲线)
  • 若点密集看不清趋势,可用 sns.regplot 配合 scatter=False 只画回归线

带分类调节的回归:用 hue 或 col 实现分组建模

真正体现 Seaborn 优势的地方——同一张图里,不同子组各自拟合回归线。比如“男性 vs 女性顾客,账单与小费的关系是否不同?”

  • 代码:sns.lmplot(data=tips, x='total_bill', y='tip', hue='sex', markers=['o','s'], scatter_kws={'alpha':0.6})
  • 注意:hue 分组后,每组样本量不能太少,否则回归线不稳定;可先用 tips.groupby('sex').size() 检查
  • 若想固定斜率(即只平移截距),需手动构造哑变量建模,Seaborn 不直接支持;此时建议转 pandas + statsmodels

不复杂但容易忽略:所有图表都依赖数据清洗质量。绘图前务必检查缺失值(tips.isna().sum())、异常值(如 tip 为负)、数据类型(category vs object)。Seaborn 很聪明,但不会替你判断“星期三”该是 category 还是 str。

相关专题

更多
Python 时间序列分析与预测
Python 时间序列分析与预测

本专题专注讲解 Python 在时间序列数据处理与预测建模中的实战技巧,涵盖时间索引处理、周期性与趋势分解、平稳性检测、ARIMA/SARIMA 模型构建、预测误差评估,以及基于实际业务场景的时间序列项目实操,帮助学习者掌握从数据预处理到模型预测的完整时序分析能力。

49

2025.12.04

数据类型有哪几种
数据类型有哪几种

数据类型有整型、浮点型、字符型、字符串型、布尔型、数组、结构体和枚举等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

297

2023.10.31

php数据类型
php数据类型

本专题整合了php数据类型相关内容,阅读专题下面的文章了解更多详细内容。

216

2025.10.31

counta和count的区别
counta和count的区别

Count函数用于计算指定范围内数字的个数,而CountA函数用于计算指定范围内非空单元格的个数。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

192

2023.11.20

堆和栈的区别
堆和栈的区别

堆和栈的区别:1、内存分配方式不同;2、大小不同;3、数据访问方式不同;4、数据的生命周期。本专题为大家提供堆和栈的区别的相关的文章、下载、课程内容,供大家免费下载体验。

366

2023.07.18

堆和栈区别
堆和栈区别

堆(Heap)和栈(Stack)是计算机中两种常见的内存分配机制。它们在内存管理的方式、分配方式以及使用场景上有很大的区别。本文将详细介绍堆和栈的特点、区别以及各自的使用场景。php中文网给大家带来了相关的教程以及文章欢迎大家前来学习阅读。

559

2023.08.10

堆和栈的区别
堆和栈的区别

堆和栈的区别:1、内存分配方式不同;2、大小不同;3、数据访问方式不同;4、数据的生命周期。本专题为大家提供堆和栈的区别的相关的文章、下载、课程内容,供大家免费下载体验。

366

2023.07.18

堆和栈区别
堆和栈区别

堆(Heap)和栈(Stack)是计算机中两种常见的内存分配机制。它们在内存管理的方式、分配方式以及使用场景上有很大的区别。本文将详细介绍堆和栈的特点、区别以及各自的使用场景。php中文网给大家带来了相关的教程以及文章欢迎大家前来学习阅读。

559

2023.08.10

桌面文件位置介绍
桌面文件位置介绍

本专题整合了桌面文件相关教程,阅读专题下面的文章了解更多内容。

0

2025.12.30

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
最新Python教程 从入门到精通
最新Python教程 从入门到精通

共4课时 | 0.6万人学习

Django 教程
Django 教程

共28课时 | 2.6万人学习

SciPy 教程
SciPy 教程

共10课时 | 1.0万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号