mcpField
A
alterlab-seaborn

alterlab-seaborn

github.com/alterlab-ieu数据与数据库7870 次安装5 周前更新
代码仓库

关于 alterlab-seaborn

面向使用 Python 和 pandas DataFrame 的数据分析者,提供 Seaborn 统计可视化指导。涵盖多类图表、统计估计和分面布局,并可结合 matplotlib 微调。

主要功能

  1. 01关系、分布与分类图
  2. 02回归与矩阵可视化
  3. 03分面及多面板布局
  4. 04语义映射与统计估计
  5. 05配色、主题及 matplotlib 定制

适用场景

  1. 01探索 DataFrame 中变量的关系
  2. 02比较不同类别的数据分布
  3. 03生成相关性热图或回归图
  4. 04制作适用于出版的多面板图

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/alterlab-ieu/alterlab-academic-skills --skill alterlab-seaborn

安装后在 Claude Code 中输入/alterlab-seaborn确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

evals/
evals.json
references/
best_practices_and_troubleshooting.md
data_palettes_theming.md
examples.md
function_reference.md
objects_interface.md
plotting_functions.md

详细介绍

Seaborn 统计可视化

概述

Seaborn 是一个 Python 可视化库,用于创建适合发表的统计图形。使用此技能,可通过最少的代码进行面向数据集的绘图、多变量分析、自动统计估算和复杂的多面板图形。

何时使用此技能

当你想直接使用 pandas DataFrame 快速创建美观的统计图形时,可使用 seaborn:分布图、关系图、分类比较、相关性热力图和分面小图。

不适用的场景
场景改用
带有悬停、缩放功能的交互式图表,或 HTML 仪表板alterlab-plotly
精确的期刊/论文样式(栏宽、点字体、CMYK、矢量导出)alterlab-scientific-viz
对单个图形元素或超出 FacetGrid/PairGrid 范围的布局进行底层控制alterlab-matplotlib(seaborn 的坐标轴级绘图支持通过 ax= 实现此操作)
针对数据文件的完整探索性数据分析报告(结构、质量、汇总统计)alterlab-eda
选择并执行比较背后的统计检验alterlab-statistical-analysis

设计理念

  1. 面向数据集 — 直接使用 DataFrame 和命名变量,而非抽象坐标。
  2. 语义映射 — 自动将数据值映射到视觉属性(颜色、大小、样式)。
  3. 统计感知 — 内置聚合、误差估算和置信区间。
  4. 美观的默认样式 — 开箱即用的适合发表的主题和调色板。
  5. Matplotlib 集成 — 需要时可与 matplotlib 自定义功能完全兼容。

快速入门

示例适用于 seaborn ≥ 0.13(已在 0.13.2 上验证;截至 2026 年 9 月,这仍是当前版本)。此版本有两个容易踩坑的 API 要点:只有同时使用 hue= 时才能传入 palette=(不带 hue 的 palette 已弃用,计划在 v0.14 中移除);设置误差线样式时应使用 err_kws={...},而不是已弃用的 errcolor/errwidth/scale/join 关键字(计划在 v0.15 中移除)。

在 matplotlib 3.11 中,所有绘图函数仍可正常使用,但 boxplot(以及 catplot(kind="box"))会发出 vert MatplotlibDeprecationWarning,heatmap 则会发出 set_bad PendingDeprecationWarning。这两种警告都来自 seaborn 内部,目前无害;matplotlib 3.13 计划移除 vert,因此在 seaborn 发布修复版本之前,依赖 sns.boxplot 的环境应将 matplotlib 固定为 matplotlib<3.13。

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

df = sns.load_dataset('tips')
sns.scatterplot(data=df, x='total_bill', y='tip', hue='day')
plt.show()

核心工作流

  1. 整理数据为长格式(“整洁”格式)——每个变量一列,每个观测一行。这适用于所有 seaborn 函数。使用 df.melt(...) 重塑宽格式数据。参见 references/data_palettes_theming.md。
  2. 根据变量类型选择绘图类别(参见下方的选择指南)。
  3. 使用 hue、size、style 语义映射编码额外维度。
  4. 选择坐标轴级或图形级绘图:坐标轴级(scatterplot、boxplot、heatmap 等)可通过 ax= 嵌入自定义 matplotlib 布局;图形级(relplot、displot、catplot、lmplot 等)管理整个图形,并通过 col/row 创建分面。
  5. 使用 set_theme/set_context 设置主题,并通过 savefig(dpi=300, bbox_inches='tight') 保存(矢量图使用 PDF)。

绘图类别路由

选择类别,然后查看 references/plotting_functions.md,了解各类别的参数和代码。

目标类别主要函数
变量之间的关系关系图scatterplot、lineplot、relplot
分布范围/形状/密度分布图histplot、kdeplot、ecdfplot、displot、jointplot、pairplot
跨类别比较分类图stripplot、swarmplot、boxplot、violinplot、barplot、pointplot、countplot、catplot
线性关系/残差回归图regplot、lmplot、residplot
矩阵/相关性矩阵图heatmap、clustermap
自定义多面板网格网格图FacetGrid、PairGrid、JointGrid

现代声明式 seaborn.objects 接口(类似 ggplot2,可组合)最适合复杂的分层绘图或程序化绘图——参见 references/objects_interface.md。

颜色与主题(要点)

  • 定性色板适用于类别("colorblind"、"deep"、"muted");顺序色板适用于有序数据("rocket"、"viridis");发散色板适用于以某个值为中心的数据("vlag"、"coolwarm",搭配 center=0)。
  • set_theme(style=..., context=..., palette=...);样式包括 whitegrid/ticks/…;上下文 paper→talk→poster 会逐步放大元素尺寸。

完整的色板和主题参考:references/data_palettes_theming.md。

最佳实践(要点)

  • 使用 DataFrame 中命名的列绘图(可保留坐标轴标签);分面时使用图形级函数;通过 hue/size/style 编码额外维度。
  • 了解每个函数的估算方式:lineplot/barplot 会自动计算均值 + CI——可通过 errorbar= 和 estimator= 覆盖。
  • 结合 matplotlib(ax.set(...)、axhline、tight_layout)进行微调;保存时使用 dpi=300,发表用图则使用 PDF。

完整的最佳实践、常见模式和故障排查(图例位置、标签重叠、图形尺寸、色板区分度、KDE 带宽):references/best_practices_and_troubleshooting.md。

参考索引

  • references/plotting_functions.md — 各类图形的参数和代码(关系图、分布图、分类图、回归图、矩阵图、多图网格、图形级与坐标轴级函数)。
  • references/data_palettes_theming.md — 长/宽数据结构、色板(定性/顺序/发散/自定义)和主题(set_theme、样式、上下文)。
  • references/best_practices_and_troubleshooting.md — 最佳实践、常见模式(EDA、出版级图形、多面板、时间序列)和故障排查。
  • references/function_reference.md — 完整的函数签名、参数和示例。
  • references/objects_interface.md — 现代 seaborn.objects API 的详细指南。
  • references/examples.md — 基于场景的完整示例和代码模式。

评论

支持 Markdown