跳到主要内容

🎨 Seaborn:高级数据可视化库

Seaborn 是建立在 Matplotlib 之上的数据可视化库,集成了更漂亮的默认主题、统计图形以及与 Pandas 的高度集成,适用于探索性数据分析(EDA)。


🧐 Seaborn 解决了什么问题?

虽然 Matplotlib 功能强大,但它对样式控制比较原始,绘制统计图不够方便。Seaborn 帮助我们:

  • 快速绘制统计图(如分布图、箱线图、热图等)
  • 自动与 Pandas 集成,支持 DataFrame
  • 自动调色、美化图表,减少繁杂设置

🛠️ 基础使用

导入 seaborn 作为 sns
导入 matplotlib.pyplot 作为 plt
导入 seaborn 内置数据集

1️⃣ 分布图 sns.histplot() / sns.kdeplot()

显示变量的分布频率(直方图、密度图)。

sns.直方图(tips["total_bill"])
sns.密度图(tips["total_bill"])
plt.显示()

2️⃣ 散点图 sns.scatterplot()

可视化两个变量之间的关系。

<SmartCodeBlock
language="pymyet"
displayCode={`sns.散点图(x="total_bill", y="tip", 数据=tips)
plt.显示()`}
copyCode={`sns.scatterplot(x="total_bill", y="tip", data=tips)
plt.show()`}
/>

3️⃣ 分类图 sns.boxplot() / sns.violinplot() / sns.barplot()

用于展示分类变量与数值变量之间的关系。

箱线图(boxplot)

sns.箱线图(x="day", y="total_bill", 数据=tips)
plt.显示()

小提琴图(violinplot)

sns.小提琴图(x="day", y="tip", 数据=tips)
plt.显示()

4️⃣ 条形图 sns.barplot()

展示各组的平均值 + 误差条。

sns.条形图(x="sex", y="tip", 数据=tips)
plt.显示()

5️⃣ 热力图 sns.heatmap()

用于显示二维数据的热度强弱。

# 创建交叉表
透视 = tips.数据透视表(索引="day",="sex",="total_bill", 聚合="平均")
sns.热力图(透视, 注释=True, 格式=".1f", cmap="YlGnBu")
plt.显示()

6️⃣ 成对图 sns.pairplot()

一次性查看多个变量两两之间关系。

sns.成对图(tips, 色彩="sex")
plt.显示()

7️⃣ 设置主题风格

sns.设置风格("白网格")
sns.箱线图(x="day", y="total_bill", 数据=tips)
plt.显示()

✅ 常用风格设置

设置函数参数取值
sns.set_style()"white", "dark", "whitegrid", "darkgrid", "ticks"
sns.set_context()"notebook", "talk", "paper", "poster"
sns.set_palette()调色板名称,如 "pastel""deep""muted""Set2"

🎯 总结

图类型函数名功能描述
直方图histplot()显示频率分布
密度图kdeplot()显示平滑概率密度函数
散点图scatterplot()两变量关系
条形图barplot()分类变量的均值
箱线图boxplot()显示中位数和异常值
小提琴图violinplot()分布 + 密度
热力图heatmap()表格数据可视化
成对图pairplot()所有变量两两关系图