Seaborn 可视化
Seaborn 是基于 Matplotlib 的高级数据可视化库,提供更美观的图表和更便捷的 API。
基本绘图
散点图
python
import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd
# 创建数据
data = pd.DataFrame({
'x': [1, 2, 3, 4, 5],
'y': [2, 4, 5, 4, 5]
})
# 创建散点图
plt.figure(figsize=(10, 6))
sns.scatterplot(data=data, x='x', y='y', hue='x', size='y')
plt.title('散点图')
plt.show()折线图
python
# 创建数据
data = pd.DataFrame({
'x': [1, 2, 3, 4, 5],
'y1': [1, 2, 3, 4, 5],
'y2': [1, 4, 9, 16, 25]
})
# 创建折线图
plt.figure(figsize=(10, 6))
sns.lineplot(data=data, x='x', y='y1', label='线性')
sns.lineplot(data=data, x='x', y='y2', label='二次')
plt.title('折线图')
plt.legend()
plt.show()柱状图
python
# 创建数据
data = pd.DataFrame({
'category': ['A', 'B', 'C', 'D'],
'value': [30, 45, 25, 60]
})
# 创建柱状图
plt.figure(figsize=(10, 6))
sns.barplot(data=data, x='category', y='value', palette='viridis')
plt.title('柱状图')
plt.show()直方图
python
# 创建数据
data = pd.DataFrame({
'value': np.random.randn(1000)
})
# 创建直方图
plt.figure(figsize=(10, 6))
sns.histplot(data=data, x='value', kde=True, bins=30)
plt.title('直方图')
plt.show()高级绘图
箱线图
python
# 创建数据
data = pd.DataFrame({
'group': ['A', 'A', 'A', 'B', 'B', 'B', 'C', 'C', 'C'],
'value': [10, 20, 30, 20, 30, 40, 30, 40, 50]
})
# 创建箱线图
plt.figure(figsize=(10, 6))
sns.boxplot(data=data, x='group', y='value')
plt.title('箱线图')
plt.show()小提琴图
python
# 创建小提琴图
plt.figure(figsize=(10, 6))
sns.violinplot(data=data, x='group', y='value')
plt.title('小提琴图')
plt.show()热力图
python
# 创建相关矩阵
data = pd.DataFrame({
'x': [1, 2, 3, 4, 5],
'y': [2, 4, 5, 4, 5],
'z': [3, 6, 7, 6, 7]
})
corr_matrix = data.corr()
# 创建热力图
plt.figure(figsize=(10, 6))
sns.heatmap(corr_matrix, annot=True, cmap='coolwarm', vmin=-1, vmax=1)
plt.title('热力图')
plt.show()配对图
python
# 创建配对图
sns.pairplot(data)
plt.suptitle('配对图', y=1.02)
plt.show()样式设置
使用主题
python
# 使用预定义主题
sns.set_theme(style='whitegrid', palette='viridis')
# 查看可用主题
print(sns.axes_style())自定义样式
python
# 设置样式参数
sns.set(
rc={
'figure.figsize': (10, 6),
'axes.titlesize': 16,
'axes.labelsize': 14,
'xtick.labelsize': 12,
'ytick.labelsize': 12
}
)
# 绘图
plt.figure(figsize=(10, 6))
sns.scatterplot(data=data, x='x', y='y')
plt.title('自定义样式')
plt.show()注意事项
- 数据格式: Seaborn 通常需要 DataFrame 格式的数据
- 颜色调色板: 选择合适的颜色调色板可以提升图表可读性
- 图表类型选择: 根据数据类型和分析目的选择合适的图表类型
- 样式一致性: 在同一报告或分析中保持样式一致