跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI 生图工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
PythonAI算法

Python 数据可视化:Seaborn 库使用指南

Seaborn 是基于 Matplotlib 的高级绘图库,提供简洁 API 生成统计图表。介绍安装方法、核心 API 形式及散点图、箱线图、小提琴图等七种常用图表的绘制代码与参数详解。内容涵盖数据准备、样式设置、图表定制及结果保存,帮助开发者快速掌握 Python 数据可视化技能。

dehua dong发布于 2025/2/6更新于 2026/10/1585 浏览
Python 数据可视化:Seaborn 库使用指南

Python 数据可视化:Seaborn 库使用指南

简介

Seaborn 是基于 Matplotlib 的 Python 数据可视化库。它在 Matplotlib 的基础上进行了更高级的 API 封装,使得用户可以更加简便地创建具有吸引力的统计图表。Seaborn 高度兼容 NumPy 和 Pandas 数据结构,并支持 SciPy 与 Statsmodels 等统计模式,是数据分析中不可或缺的工具。

安装与环境配置

使用 pip 安装 Seaborn:

pip install seaborn

或者使用 conda:

conda install seaborn

在代码中导入必要的库并设置显示环境:

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

# 设置主题样式
sns.set_theme(style="whitegrid")
# 设置中文字体以防乱码
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

API 基本形式

Seaborn 的绘图函数主要针对 Pandas 的 DataFrame 或 NumPy 数组,常见调用形式如下:

  1. sns.图名 (x='X 轴列名', y='Y 轴列名', data=df)
  2. sns.图名 (x='X 轴列名', y='Y 轴列名', hue='分组参数', data=df)
  3. sns.图名 (x=np.array, y=np.array)

常用图表绘制详解

1. 散点图 (Scatter Plot)

散点图用于表现两个变量之间的关系。每个点代表数据集中的一个观察值。使用 relplot() 生成。

# 示例:员工人均薪酬 vs 高管平均薪酬
g = sns.relplot(
    x='员工人均薪酬', 
    y='高管平均薪酬', 
    hue='申万一级行业', 
    data=df,
    kind='scatter'
)

参数说明:

  • x, y: 坐标轴数据列名。
  • hue: 通过颜色区分不同类别(如行业)。
  • data: 数据源 DataFrame。

2. 箱线图 (Box Plot)

箱线图展示数据的分布情况,包括上边缘、下边缘、中位数和四分位数,便于观察离群点。使用 catplot(kind='box') 生成。

sns.catplot(
    x='申万一级行业', 
    y='员工人均薪酬', 
    kind='box', 
    data=df
)

参数说明:

  • kind: 指定图表类型,此处为 'box'。
  • orient: 控制方向,'h' 为横向,'v' 为纵向。

3. 小提琴图 (Violin Plot)

结合箱形图和密度图特征,显示数据分布形状。中间的粗条表示四分位数范围,白点为中位数。

sns.catplot(
    x='申万一级行业', 
    y='员工人均薪酬', 
    kind='violin', 
    data=df,
    split=True, 
    hue='上市年份'
)

参数说明:

  • split: 若为 True,可将同一类别的数据按另一维度拆分到两侧。
  • hue: 进一步细分颜色。

4. 双变量密度估计图 (Joint Plot)

展现单个变量的分布及双变量之间的关系。使用 jointplot()。

sns.jointplot(
    x='员工人均薪酬', 
    y='高管人均薪酬', 
    data=df,
    kind='hex'  # 也可选 'scatter', 'kde'
)

参数说明:

  • kind: 外围单变量分布表现形式,如直方图 ('hist') 或核密度估计 ('kde')。

5. 热力图 (Heatmap)

展现多变量之间的相关系数矩阵。使用 heatmap()。

corr = df.corr()
sns.heatmap(
    corr, 
    annot=True, 
    cmap='coolwarm', 
    vmin=-1, 
    vmax=1,
    square=True
)

参数说明:

  • annot: 是否显示数值。
  • cmap: 颜色映射方案。
  • square: 单元格是否为正方形。

6. 矩阵散点图 (Pair Plot)

展现多个变量两两之间的散点图及自身分布规律。使用 pairplot()。

sns.pairplot(
    df, 
    diag_kind='kde', 
    markers=['o', 's', 'D'],
    plot_kws={'alpha': 0.6}
)

参数说明:

  • diag_kind: 对角线分布类型,如直方图 ('hist') 或密度图 ('kde')。
  • markers: 散点形状。

7. 单变量密度估计图 (KDE Plot)

反映变量自身的分布规律。使用 kdeplot()。

sns.kdeplot(
    data=df, 
    x='员工人均薪酬', 
    shade=True, 
    alpha=0.5, 
    color='blue'
)

参数说明:

  • shade: 是否填充阴影。
  • alpha: 透明度。

进阶技巧:样式定制与保存

Seaborn 允许用户自定义全局样式,以便保持报告的一致性。

# 设置调色板
sns.set_palette("husl")
# 保存图像
plt.savefig('output.png', dpi=300, bbox_inches='tight')

此外,可以通过 color_palette 获取特定颜色的列表,用于手动指定颜色。对于复杂的布局,可以使用 FacetGrid 进行分面绘图,将数据按多个维度切分展示。

总结

Seaborn 提供了丰富的统计图表接口,能够极大地简化数据可视化的流程。通过合理组合上述图表,可以深入分析数据特征、发现异常值及变量间的相关性。在实际项目中,建议结合业务背景选择合适的图表类型,并利用 set_theme 统一视觉风格,确保报告的专业性与可读性。

目录

  1. Python 数据可视化:Seaborn 库使用指南
  2. 简介
  3. 安装与环境配置
  4. 设置主题样式
  5. 设置中文字体以防乱码
  6. API 基本形式
  7. 常用图表绘制详解
  8. 1. 散点图 (Scatter Plot)
  9. 示例:员工人均薪酬 vs 高管平均薪酬
  10. 2. 箱线图 (Box Plot)
  11. 3. 小提琴图 (Violin Plot)
  12. 4. 双变量密度估计图 (Joint Plot)
  13. 5. 热力图 (Heatmap)
  14. 6. 矩阵散点图 (Pair Plot)
  15. 7. 单变量密度估计图 (KDE Plot)
  16. 进阶技巧:样式定制与保存
  17. 设置调色板
  18. 保存图像
  19. 总结

更多推荐文章

查看全部
  • 飞算 Java AI 工具实战:从安装部署到代码生成
  • PyCharm 详细安装与配置指南
  • Python pip 安装报错:Preparing metadata 失败的处理
  • 三款 AI 编程工具怎么选:Cursor、Kiro 和 Google Antigravity
  • Trae AI 技能创建指南:自动保存提示词功能实现
  • AI 编程工具深度对比:Cursor、Copilot、Trae 与 Claude Code
  • DeepSeek + MCP 股票分析系统搭建与接入教程
  • Z-Image-ComfyUI 快速搭建 AI 绘画系统
  • 昇腾 NPU 部署 Llama 2 模型:性能测试与优化实战
  • Spring Web 模块核心概念与 RESTful API 调用
  • AR 试妆肤色匹配算法公平性测试:框架构建与实战
  • Rust WebAssembly开发实战:构建高性能前端应用
  • FPGA 实战:CAN 总线协议原理与 Verilog 实现
  • Android System WebView 详解与版本兼容性指南
  • Web3 学习指南:从比特币到以太坊的演进
  • 数据可信:AI+Data 时代企业落地的生死线与破局之道
  • 黑词分析前端组件设计:双面板交互与进度监控
  • FPGA 中 XDMA 多通道传输架构解析
  • 基于 Word2Vec 与 RAG 的个人知识库构建指南
  • Dubbo 服务配置最佳实践与避坑指南

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online