Seaborn 学习笔记
一、Seaborn 简介
定义:建立在 Matplotlib 基础之上的 Python 数据可视化库,专注于统计图形绘制,便于数据呈现与理解。
设计目标:简化统计数据可视化过程,提供高级接口和美观默认主题,支持用少量代码实现复杂图形。
二、Seaborn 安装与导入
安装方式
- pip 安装:
pip install seaborn
- 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()