Seaborn是基于Matplotlib的高级统计可视化库,支持Pandas DataFrame,提供分布、关系、分类等统计图表函数,具备主题配色定制、FacetGrid/PairGrid多维探索及高质量图像导出功能。
Seaborn 是基于 Matplotlib 的高级数据可视化库,专为统计图表设计,能用更少代码绘制出更专业、更美观的图形。它内置了对 Pandas DataFrame 的友好支持,自动处理分组、聚合与语义映射,特别适合探索性数据分析(EDA)和统计结果呈现。
Seaborn 提供了语义明确的函数,直接对应常见统计需求:
sns.histplot()(替代已弃用的 distplot)画直方图+核密度估计;sns.kdeplot() 单独绘制密度曲线;sns.ecdfplot() 绘制经验累积分布函数。sns.scatterplot() 展示两个数值变量关系(可按类别着色或大小编码第三维);sns.lineplot() 适合时间序列或均值趋势线;sns.relplot() 是面向对象的高层接口,支持行列分面(col/row)。sns.barplot() 显示均值及误差线;sns.countplot()(现推荐用 sns.histplot() 配合 stat="count")统计频次;sns.boxplot() 和 sns.violinplot() 展示分布离散程度与形状。Seaborn 默认风格简洁现代,但可一键切换或深度调整:
sns.set_style("whitegrid")(可选 "darkgrid"、"ticks"、"white");sns.set_context("notebook") 控制字体大小与线条粗细(可选 "paper"、"talk"、"poster")。palette="viridis" 使用内建 colormap;palette=["#3498db", "#e74c3c", "#2ecc71"] 自定义颜色列表;hue 参数自动调色时,用 sns.color_palette("Set2", n_colors=5) 预生成协调色板。linewidth=1.2、edgecolor="w"、alpha=0.8 等直接传入绘图函数。当需同时观察多个变量组合时,Seaborn 的网格类工具比手动循环子图更清晰、更一致:
sns.FacetGrid(df, col="category", row="year", margin_titles=True) 创建分面结构,再用 .map() 绑定基础绘图函数(如 plt.scatter),适合按离散变量切片分析。sns.PairGrid(df, vars=["age", "income", "score"], hue="group") 自动生成变量两两组合的散点图矩阵,配合 .map_offdiag(sns.scatterplot) 和 .map_diag(sns.histplot) 定制对角线与非对角线内容。.add_legend() 精确控制图例位置;用 .set_axis_labels("X Label", "Y Label") 统一坐标轴标题;用 .tight_layout() 自动优化间距。导出图像时注意分辨率、格式与透明背景等细节:
plt.tight_layout() 防止标签被截断;若含图例在图外,用 plt.savefig(..., bbox_inches="tight") 自适应裁剪。plt.savefig("plot.pdf", dpi=300) 或 plt.savefig("pl
ot.svg");网页展示可用高分 PNG:plt.savefig("plot.png", dpi=200, facecolor="w", transparent=False)。plt.rcParams["pdf.fonttype"] = 42(Type 1 字体替代方案)。