Seaborn 统计可视化入门

2026-06-20 · 阅读 7 分钟 · 机器学习

← 返回首页

为什么选择 Seaborn?

Seaborn 是基于 Matplotlib 的高级可视化库,专门用于统计图表。它的优势在于:

安装与设置

pip install seaborn

import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np

# 设置主题
sns.set_theme(style="whitegrid")

常用图表类型

分布图

# 直方图
tips = sns.load_dataset("tips")
sns.histplot(data=tips, x="total_bill", bins=20, kde=True)
plt.title("账单金额分布")
plt.show()

# 核密度图
sns.kdeplot(data=tips, x="total_bill", shade=True)
plt.title("账单金额密度图")
plt.show()

关系图

# 散点图
sns.scatterplot(data=tips, x="total_bill", y="tip", hue="sex", size="size")
plt.title("账单与小费的关系")
plt.show()

# 关系图(自动添加回归线)
sns.regplot(data=tips, x="total_bill", y="tip")
plt.title("账单与小费的回归分析")
plt.show()

分类图

# 箱线图
sns.boxplot(data=tips, x="day", y="total_bill", hue="sex")
plt.title("不同性别的账单分布")
plt.show()

# 小提琴图
sns.violinplot(data=tips, x="day", y="total_bill", hue="sex", split=True)
plt.title("小提琴图:账单分布")
plt.show()

# 条形图
sns.barplot(data=tips, x="day", y="tip", ci=95)
plt.title("每日平均小费")
plt.show()

热力图

# 相关性热力图
corr = tips.corr()
sns.heatmap(corr, annot=True, cmap="coolwarm", center=0)
plt.title("特征相关性热力图")
plt.show()

机器学习可视化案例

特征分布可视化

from sklearn.datasets import load_iris

# 加载数据
iris = load_iris()
df = pd.DataFrame(iris.data, columns=iris.feature_names)
df['species'] = iris.target

# 特征分布图
sns.pairplot(df, hue="species", markers=["o", "s", "D"])
plt.suptitle("鸢尾花特征分布", y=1.02)
plt.show()

模型评估可视化

from sklearn.metrics import confusion_matrix

# 假设 y_true 和 y_pred 是真实标签和预测标签
cm = confusion_matrix(y_true, y_pred)

# 热力图显示混淆矩阵
plt.figure(figsize=(8, 6))
sns.heatmap(cm, annot=True, fmt="d", cmap="Blues",
            xticklabels=iris.target_names,
            yticklabels=iris.target_names)
plt.xlabel("预测标签")
plt.ylabel("真实标签")
plt.title("混淆矩阵")
plt.show()
小贴士: 使用 sns.set_palette() 可以设置全局调色板,推荐使用 "husl" 或 "Set2" 配色方案。

总结

Seaborn 让统计可视化变得简单优雅。结合 Matplotlib 的灵活性,你可以创建出专业级别的数据可视化图表。