第二十六章: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的基本用法,并尝试使用高级功能来提升自己的数据可视化能力。动手实践是学习的最佳方式,建议大家多尝试不同的数据集和图表类型,逐步积累经验。资源绑定附上完整资料供读者参考学习!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值