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

第二十六章:Seaborn库实现统计数据可视化

前言

   在数据分析和机器学习领域,数据可视化是不可或缺的一环。它不仅帮助我们理解数据的分布和特征,还能发现潜在的规律和问题。今天,我将带大家深入学习Python中一个强大的可视化库——Seaborn,它基于Matplotlib构建,提供了更高级的接口和美观的默认样式,让数据可视化变得简单而高效。资源绑定附上完整资料供读者参考学习!

一、Seaborn库简介

1.1 什么是Seaborn?

   Seaborn是一个基于Python的统计可视化库,专注于绘制美观且信息丰富的统计图表。它内置了许多主题和样式,能够轻松创建复杂的可视化,比如热力图、箱线图、散点图矩阵等。

1.2 为什么选择Seaborn?

  • 美观的默认样式:Seaborn提供了多种主题,让图表看起来更专业。

  • 高级接口:简化了复杂图表的绘制过程,比如多变量分析和分布可视化。

  • 与Pandas无缝集成:可以直接使用Pandas DataFrame作为输入。

  • 强大的统计功能:内置了许多统计方法,比如回归分析、分布拟合等。

1.3 安装Seaborn

bash

pip install seaborn

二、Seaborn常见操作示例

2.1 数据准备

我们将使用Seaborn自带的示例数据集来演示。

Python示例代码
import seaborn as sns
import matplotlib.pyplot as plt

# 加载示例数据集
tips = sns.load_dataset("tips")

效果展示

2.2 绘制基本分布图

2.2.1 直方图

Python示例代码
import seaborn as sns
import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

# 加载示例数据集
tips = sns.load_dataset("tips")
sns.histplot(data=tips, x="total_bill", kde=True,color='red')  # 添加核密度估计
plt.title("总账单分布")
plt.show()
效果展示

2.2.2 箱线图

Python示例代码
import seaborn as sns
import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

# 加载示例数据集
tips = sns.load_dataset("tips")
sns.boxplot(x="day", y="total_bill", data=tips)
plt.title("不同日期的总账单分布")
plt.show()
效果展示

2.2.3 小提琴图

Python示例代码
import seaborn as sns
import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

# 加载示例数据集
tips = sns.load_dataset("tips")
sns.violinplot(x="day", y="total_bill", data=tips,color="brown")
plt.title("不同日期的总账单分布(小提琴图)")
plt.show()
效果展示

2.3 绘制关系图

2.3.1 散点图

Python示例代码
import seaborn as sns
import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

# 加载示例数据集
tips = sns.load_dataset("tips")
sns.scatterplot(x="total_bill", y="tip", hue="smoker", data=tips)
plt.title("总账单与小费的关系(按是否吸烟分组)")
plt.show()

效果展示

2.3.2 回归图

Python示例代码
import seaborn as sns
import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

# 加载示例数据集
tips = sns.load_dataset("tips")
sns.regplot(x="total_bill", y="tip", data=tips,color='green')
plt.title("总账单与小费的线性回归关系")
plt.show()
效果展示

2.4 绘制分类图

2.4.1 条形图

Python示例代码
import seaborn as sns
import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

# 加载示例数据集
tips = sns.load_dataset("tips")
sns.barplot(x="day", y="total_bill", data=tips)
plt.title("不同日期的平均总账单")
plt.show()
效果展示

2.4.2 点图

Python示例代码
import seaborn as sns
import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

#color=['red','blue','green']
# 加载示例数据集
tips = sns.load_dataset("tips")
sns.pointplot(x="day", y="total_bill", hue="smoker", data=tips)
plt.title("不同日期和吸烟情况下的总账单")
plt.show()
效果展示

三、Seaborn高级示例

3.1 多变量分析:PairPlot

Python示例代码
import seaborn as sns
import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

# 加载示例数据集
tips = sns.load_dataset("tips")
sns.pairplot(data=tips, hue="smoker", diag_kind="kde")
plt.title("多变量关系分析")
plt.show()
效果展示

3.2 热力图:相关性矩阵

Python示例代码
import seaborn as sns
import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

# 加载示例数据集
tips = sns.load_dataset("tips")

# 选择数值列
numeric_cols = tips.select_dtypes(include=['number']).columns
tips_numeric = tips[numeric_cols]

# 计算相关性矩阵
corr = tips_numeric.corr()

# 绘制热力图
sns.heatmap(corr, annot=True, cmap="coolwarm")
plt.title("变量相关性热力图")
plt.show()
效果展示

3.3 时间序列可视化

Python示例代码
import seaborn as sns
import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

# 加载时间序列数据
flights = sns.load_dataset("flights")

# 使用关键字参数 pivot
flights_pivot = flights.pivot(index="month", columns="year", values="passengers")

# 绘制热力图
sns.heatmap(flights_pivot, annot=True, cmap="Blues")
plt.title("航班乘客数量热力图")
plt.show()

效果展示

3.4 自定义主题和样式

Python示例代码
import seaborn as sns
import matplotlib.pyplot as plt

# 加载示例数据集
tips = sns.load_dataset("tips")
# 设置主题
sns.set_theme(style="darkgrid", palette="Set2")
# 绘制自定义风格的图表
sns.lineplot(x="total_bill", y="tip", hue="day", data=tips, markers=True, dashes=False)
plt.title("自定义风格的线图", font='SimHei')
plt.show()

效果展示

四、Seaborn函数参数总结表

函数名常见参数参数说明
histplotx, data, kde绘制直方图,kde=True可添加核密度估计
boxplotx, y, data绘制箱线图,展示数据分布的四分位数和异常值
violinplotx, y, data绘制小提琴图,结合箱线图和密度估计
scatterplotx, y, hue, data绘制散点图,hue用于分组着色
regplotx, y, data绘制回归图,展示变量间的线性关系
barplotx, y, data绘制条形图,展示分类变量的均值
pointplotx, y, hue, data绘制点图,适合展示分类变量的均值和置信区间
pairplotdata, hue绘制散点图矩阵,适合多变量分析
heatmapdata, annot绘制热力图,annot=True可在单元格内显示数值
set_themestyle, palette设置全局主题和配色方案

五、总结

   Seaborn是一个功能强大且易于使用的统计可视化库,它不仅简化了复杂图表的绘制过程,还提供了美观的默认样式和丰富的统计功能。通过本文的示例,希望大家能够掌握Seaborn的基本用法,并尝试使用高级功能来提升自己的数据可视化能力。动手实践是学习的最佳方式,建议大家多尝试不同的数据集和图表类型,逐步积累经验。资源绑定附上完整资料供读者参考学习!

http://www.dtcms.com/a/109582.html

相关文章:

  • 2025年机动车授权签字人考试判断题分享
  • 2025年渗透测试面试题总结- 某汽车厂商-安全工程师扩展(题目+回答)
  • 量子计算与经典计算的融合与未来
  • AI赋能——让人工智能助力工作提质增效
  • CVPR2024 | 构建时序动作检测模型对时序干扰的鲁棒性基准
  • 近日八股——计算机网络
  • 使用pycharm社区版调试DIFY后端python代码
  • 破解 N 皇后 II:位运算的高效艺术
  • 4月3日工作日志
  • CVSS-通用漏洞评分系统版本 4.0:规范文档
  • 代码随想录|动态规划|18完全背包理论基础
  • Java Lambda 表达式提升效率
  • 高效深度学习lecture01
  • Flask与 FastAPI 对比:哪个更适合你的 Web 开发?
  • MySQL(三)
  • 二分类交叉熵损失
  • 在内网环境中为 Gogs 配置 HTTPS 访问
  • 常用的元素操作API
  • chromium魔改——navigator.webdriver 检测
  • 【无人机】无人机PX4飞控系统高级软件架构
  • 创新项目实训开发日志1
  • 21.数据链路层协议
  • 如何在本地部署魔搭上千问Qwen2.5-VL-32B-Instruct-AWQ模型在显卡1上面运行推理,并开启api服务
  • QT 中的元对象系统(五):QMetaObject::invokeMethod的使用和实现原理
  • JavaScript基础-移动端常用开发框架
  • 智能多媒体处理流水线——基于虎跃办公API的自动化解决方案
  • Redis 除了数据类型外的核心功能 的详细说明,包含事务、流水线、发布/订阅、Lua 脚本的完整代码示例和表格总结
  • 【数据集】多视图文本数据集
  • Python第七章09:自定义python包.py
  • maven引入项目内本地包方法