Seaborn 学习笔记

发布于:2025-08-10 ⋅ 阅读:(22) ⋅ 点赞:(0)

一、Seaborn 简介

定义:建立在 Matplotlib 基础之上的 Python 数据可视化库,专注于统计图形绘制,便于数据呈现与理解。

设计目标:简化统计数据可视化过程,提供高级接口和美观默认主题,支持用少量代码实现复杂图形。

二、Seaborn 安装与导入

安装方式

  1. pip 安装:pip install seaborn
  2. conda 安装:conda install seaborn(可使用清华源:Simple Index

导入方式

python

运行

import seaborn as sns
sns.set_theme()  # 可设置主题和模板

主题设置(sns.set_theme ())

style 参数(主题风格):

参数值 说明
darkgrid 深色网格主题(默认)
whitegrid 浅色网格主题
dark 深色主题,无网格
white 浅色主题,无网格
ticks 深色主题,带刻度标记

context 参数(适用场景,影响标签和线条大小):

参数值 说明
paper 适用于小图,标签和线条较小
notebook 适用于笔记本环境,标签和线条中等(默认)
talk 适用于演讲幻灯片,标签和线条较大
poster 适用于海报,标签和线条非常大

示例:sns.set_theme(style="whitegrid", context="paper")

三、常用绘图函数

1. 散点图(sns.scatterplot ())

功能:绘制两个变量之间的散点图,可添加趋势线,展示变量间关系。

2. 折线图(sns.lineplot ())

功能:绘制变量随另一个变量变化的趋势线图。

示例代码

python

运行

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

# 创建示例数据框
data = {'X': [1, 2, 3, 4, 5], 'Y': [5, 4, 3, 2, 1]}
df = pd.DataFrame(data)

# 绘制折线图
sns.lineplot(x='X', y='Y', data=df)
plt.show()

3. 柱形图(sns.barplot ())

功能:绘制变量的均值或其他聚合函数的柱状图,展示类别间的数值差异。

示例代码

python

运行

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

# 创建示例数据框
data = {'Category': ['A', 'B', 'C'], 'Value': [3, 7, 5]}
df = pd.DataFrame(data)

# 绘制柱状图
sns.barplot(x='Category', y='Value', data=df)
plt.show()

4. 箱线图(sns.boxplot ())

功能:展示变量的分布情况,包括中位数、四分位数、异常值等统计信息。

示例代码

python

运行

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

# 创建示例数据框
data = {'Category': ['A', 'A', 'B', 'B', 'C', 'C'], 'Value': [3, 7, 5, 9, 2, 6]}
df = pd.DataFrame(data)

# 绘制箱线图
sns.boxplot(x='Category', y='Value', data=df)
plt.show()

5. 热图(sns.heatmap ())

功能:可视化矩阵数据,常用于展示相关性矩阵,通过颜色深浅反映数值大小。

示例代码

python

运行

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

# 创建示例数据框
data = {'A': [1, 2, 3, 4, 5], 'B': [5, 4, 3, 2, 1]}
df = pd.DataFrame(data)

# 创建相关性矩阵
correlation_matrix = df.corr()

# 绘制热图
sns.heatmap(correlation_matrix, annot=True, cmap='coolwarm', fmt=".2f")
plt.show()

6. 小提琴图(sns.violinplot ())

功能:结合箱线图和核密度估计,展示数据分布的形状和密度,更全面反映数据特征。

示例代码

python

运行

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

# 创建示例数据框
data = {'Category': ['A', 'A', 'B', 'B', 'C', 'C'], 'Value': [3, 7, 5, 9, 2, 6]}
df = pd.DataFrame(data)

# 绘制小提琴图
sns.violinplot(x='Category', y='Value', data=df)
plt.show()

网站公告

今日签到

点亮在社区的每一天
去签到