
关于
Seaborn 是用于创建出版级统计图形的 Python 可视化库。适用于面向数据集的绘图、多变量分析、自动统计估计和用最少代码创建复杂多面板图形。
name: seaborn description: "Seaborn 是一个 Python 可视化库,用于创建出版质量的统计图形。使用此技能进行面向数据集的绑定、多变量分析、自动统计估计以及用最少代码创建复杂的多面板图形。" license: BSD-3-Clause license metadata: skill-author: K-Dense Inc. risk: unknown source: community
Seaborn 统计可视化
何时使用
- 你需要直接从表格数据集创建出版质量的统计图形。
- 你正在用最少的绑定代码探索多变量关系、分布或分组比较。
- 你想要在 matplotlib 之上使用 seaborn 面向数据集的 API 和统计默认值。
概述
Seaborn 是一个 Python 可视化库,用于创建出版质量的统计图形。使用此技能进行面向数据集的绘图、多变量分析、自动统计估计以及用最少代码创建复杂的多面板图形。
设计理念
Seaborn 遵循以下核心原则:
- 面向数据集:直接使用 DataFrame 和命名变量,而非抽象坐标
- 语义映射:自动将数据值转换为视觉属性(颜色、大小、样式)
- 统计感知:内置聚合、误差估计和置信区间
- 美学默认值:开箱即用的出版就绪主题和调色板
- Matplotlib 集成:在需要时与 matplotlib 自定义完全兼容
快速开始
import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd
# Load example dataset
df = sns.load_dataset('tips')
# Create a simple visualization
sns.scatterplot(data=df, x='total_bill', y='tip', hue='day')
plt.show()
核心绑定接口
函数接口(传统)
函数接口提供按可视化类型组织的专用绘图函数。每个类别有轴级函数(绑定到单个轴)和图级函数(管理整个图形并支持分面)。
何时使用:
- 快速探索性分析
- 单一用途的可视化
- 当你需要特定的图表类型时
Objects 接口(现代)
seaborn.objects 接口提供类似 ggplot2 的声明式、可组合 API。通过链式方法指定数据映射、标记、变换和比例尺来构建可视化。
何时使用:
- 复杂的分层可视化
- 当你需要对变换进行细粒度控制时
- 构建自定义图表类型
- 程序化图表生成
from seaborn import objects as so
# Declarative syntax
(
so.Plot(data=df, x='total_bill', y='tip')
.add(so.Dot(), color='day')
.add(so.Line(), so.PolyFit())
)
按类别分类的绑定函数
关系图(变量间关系)
用途: 探索两个或多个变量之间的关系
scatterplot()- 将单个观测值显示为点lineplot()- 显示趋势和变化(自动聚合并计算置信区间)relplot()- 支持自动分面的图级接口
关键参数:
x、y- 主要变量hue- 用于附加分类/连续变量的颜色编码size- 点/线大小编码style- 标记/线条样式编码col、row- 分面为多个子图(仅图级)
# Scatter with multiple semantic mappings
sns.scatterplot(data=df, x='total_bill', y='tip',
hue='time', size='size', style='sex')
# Line plot with confidence intervals
sns.lineplot(data=timeseries, x='date', y='value', hue='category')
# Faceted relational plot
sns.relplot(data=df, x='total_bill', y='tip',
col='time', row='sex', hue='smoker', kind='scatter')
分布图(单变量和双变量分布)
用途: 理解数据的分散程度、形状和概率密度
histplot()- 基于柱状的频率分布,支持灵活分箱kdeplot()- 使用高斯核的平滑密度估计ecdfplot()- 经验累积分布(无需调参)rugplot()- 单个观测值的刻度标记displot()- 单变量和双变量分布的图级接口jointplot()- 带边际分布的双变量图pairplot()- 数据集中成对关系的矩阵
关键参数:
x、y- 变量(单变量时 y 可选)hue- 按类别分离分布stat- 归一化方式:"count"、"frequency"、"probability"、"density"bins/binwidth- 直方图分箱控制bw_adjust- KDE 带宽乘数(越高越平滑)fill- 填充曲线下方区域multiple- 如何处理 hue:"layer"、"stack"、"dodge"、"fill"
# Histogram with density normalization
sns.histplot(data=df, x='total_bill', hue='time',
stat='density', multiple='stack')
兼容工具
Claude CodeCursor
标签
数据工程
