SuperAPI AI 工具集

seaborn

数据与分析

查看项目

更新于 10-15 10:24

技能介绍

用途

Seaborn 是一个用于创建出版级统计图形的 Python 可视化库。该技能面向数据集进行绘图,适用于多变量分析、自动统计估计以及以极少代码构建复杂的多面板图形。

主要能力

Seaborn 提供两类绘制接口:函数式接口(传统)提供按可视化类型组织的专用绘图函数,每类包含轴级函数(绘制到单个 Axes)和图形级函数(管理整个图形并支持分面);seaborn.objects 接口提供声明式、可组合的 API,类似 ggplot2,通过链式方法指定数据映射、标记、变换和比例。

主要绘图类别包括:关系图(scatterplot、lineplot、relplot)用于探索变量间关系;分布图(histplot、kdeplot、ecdfplot、rugplot、displot、jointplot、pairplot)用于理解数据分布、形状与概率密度;分类图(stripplot、swarmplot、boxplot、violinplot、boxenplot、barplot、pointplot、countplot、catplot)用于比较离散类别间的分布或统计量;回归图(regplot、lmplot、residplot)用于可视化线性回归与残差;矩阵图(heatmap、clustermap)用于可视化矩阵、相关性与网格结构数据。

多面板网格方面提供 FacetGrid、PairGrid、JointGrid,用于创建复杂的多面板图形。

使用方式

基本用法为导入 seaborn、matplotlib.pyplot 和 pandas,加载数据集后调用相应绘图函数。例如使用 sns.scatterplot(data=df, x='total_bill', y='tip', hue='day') 创建散点图。可通过 hue、size、style 进行语义映射,通过 col、row 实现分面。声明式接口示例如下:

from seaborn import objects as so so.Plot(data=df, x='total_bill', y='tip').add(so.Dot(), color='day').add(so.Line(), so.PolyFit())

数据建议使用长表(每列一个变量、每行一个观测);宽表可用于简单时间序列、相关矩阵和热力图,并可通过 df.melt(var_name='condition', value_name='measurement') 转换。

调色板包括定性调色板(deep、muted、pastel、bright、dark、colorblind)、顺序调色板(rocket、mako、flare、crest、viridis、magma、plasma)和发散调色板(vlag、icefire、coolwarm、Spectral),并可通过 sns.color_palette、sns.light_palette、sns.diverging_palette 创建自定义调色板。

主题与美学通过 sns.set_theme(style=..., palette=..., font=...) 控制;样式包括 darkgrid、whitegrid、dark、white、ticks;上下文包括 paper、notebook、talk、poster,可通过 sns.set_context 或临时上下文管理器设置。

适用场景

适用于探索性数据分析(如 pairplot、displot、相关热力图)、出版级图形制作(设置主题、上下文并保存为高分辨率位图或矢量格式)、复杂多面板图形(结合 matplotlib 的 subplots 与 seaborn 的轴级函数)。

限制

图形级函数无法放入已有图形,且使用 height 和 aspect 控制尺寸;轴级函数可通过 ax= 参数精确放置并返回 Axes 对象。其他具体限制未在提供资料中说明。