欢迎来到 Python 基础入门 Day17!昨天,我们学习了 matplotlib
的基础知识,并使用它绘制了折线图、柱状图和饼图等基本图表。今天,我们将学习更高级的数据可视化库 Seaborn。它建立在 matplotlib
之上,提供了更美观和易用的接口,非常适合统计图表的绘制。
目录
- 什么是 Seaborn?
- 安装和导入 Seaborn
- 基本用法:绘制统计图表
- 数据集与 Seaborn 集成
- 高级绘图:分布图与分类图
- 自定义图表样式
- 小结与练习
一、什么是 Seaborn?
Seaborn 是一个高级 Python 可视化库,特别适合处理带有统计属性的数据。相比 matplotlib
,它的优点包括:
- 更优雅的默认样式和调色板。
- 与 Pandas DataFrame 无缝集成。
- 支持复杂的多变量数据可视化。
- 内置许多高级统计图表类型。
二、安装和导入 Seaborn
2.1 安装
你可以通过 pip 安装 Seaborn:
pip install seaborn
2.2 导入
通常使用以下方式导入 Seaborn,同时搭配 Pandas 和 Matplotlib 使用:
import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd
三、基本用法:绘制统计图表
3.1 折线图
Seaborn 的 lineplot
用于绘制趋势线:
import seaborn as sns
import matplotlib.pyplot as plt
# 数据
x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]
# 绘制折线图
sns.lineplot(x=x, y=y)
# 添加标题
plt.title("Seaborn Lineplot")
plt.show()
3.2 散点图
scatterplot
可以清晰地展示点的分布情况:
# 数据
x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]
# 绘制散点图
sns.scatterplot(x=x, y=y)
plt.title("Seaborn Scatterplot")
plt.show()
四、数据集与 Seaborn 集成
Seaborn 支持直接处理 Pandas 的 DataFrame,非常适合用来绘制基于真实数据集的统计图表。
4.1 使用示例数据集
Seaborn 提供了一些内置数据集,例如 tips
(餐馆小费数据):
# 加载内置数据集
tips = sns.load_dataset("tips")
# 查看数据集
print(tips.head())
4.2 基于数据集的绘图
绘制小费数据集中消费金额的分布:
sns.histplot(data=tips, x="total_bill", kde=True)
plt.title("Distribution of Total Bill")
plt.show()
五、高级绘图:分布图与分类图
5.1 分布图
Seaborn 的分布图可以同时显示数据分布和密度曲线:
sns.displot(data=tips, x="total_bill", kde=True)
plt.title("Total Bill Distribution")
plt.show()
5.2 分类图
分类图可以帮助比较不同类别之间的关系,例如消费金额与用餐时间:
sns.boxplot(data=tips, x="time", y="total_bill")
plt.title("Total Bill by Time")
plt.show()
5.3 散点图矩阵
pairplot
是一种多变量分析的强大工具:
sns.pairplot(data=tips, hue="sex")
plt.show()
六、自定义图表样式
Seaborn 提供了多种默认样式,可以让图表更美观:
# 设置样式
sns.set_theme(style="darkgrid")
# 绘制图表
sns.histplot(data=tips, x="total_bill", kde=True)
plt.title("Styled Distribution")
plt.show()
你可以使用以下样式:
darkgrid
whitegrid
dark
white
ticks
七、小结与练习
今天,我们学习了 Seaborn 的基础知识,并探索了分布图、分类图和多变量图表。Seaborn 的强大之处在于它可以与 Pandas 数据集无缝集成,并快速生成统计图表。
今日练习题:
- 使用 Seaborn 内置的
tips
数据集,绘制消费金额随人数变化的散点图。 - 使用分类图比较用餐时间与小费金额之间的关系。
- 选择一个你自己的数据集,尝试使用
pairplot
分析变量之间的相关性。
下一节预告:在 Day18 中,我们将学习如何结合 matplotlib
和 seaborn
,生成更高级和自定义的可视化效果。敬请期待!
希望你喜欢今天的内容!如果有任何问题或建议,欢迎随时交流 😊。