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

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

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

dehua dong发布于 2025/2/6更新于 2026/8/2145 浏览
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. 总结
  • 免费图片AI生成工具免费生成了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 免费图片视频在线生成30秒,将你的创意变成现实开始设计
  • X/Twitter免费视频下载器免登陆无限额度免费视频解析下载了解详情
  • 100+免费在线小游戏爽一把
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • 企业级高性能 Web 服务器:Nginx 核心架构与实战配置
  • 自然语言处理在教育领域的应用与实战
  • MultiResUNet: 重新思考用于多模态生物医学图像分割的 U-Net 架构
  • Flutter tflite_web 在 OpenHarmony Web 组件下的 AI 推理适配与 WASM 优化
  • Python 树状结构可视化工具与实战技巧
  • MVP 至千万级并发:AI 在前后端开发中的差异化落地
  • Claude Code 高级编程技巧实战项目详解
  • Neo4j 5.26 版本下载安装配置步骤
  • Qwen-Image-2512:消费级 GPU 上的高效 AI 绘画方案
  • C++ STL vector 容器模拟实现及迭代器失效问题详解
  • LLM 申请 Hugging Face 访问令牌(以 Meta-Llama-3.1-8B-Instruct 为例)
  • 论文阅读--Agent AI 探索多模态交互的前沿领域(一)
  • 从传统编程到 AI 大模型与 Prompt 驱动的爬虫技术
  • Linux 系统 Git 安装配置与常见问题排查
  • JavaScript 基础语法与 jQuery 入门指南
  • 本地部署 Whisper 语音识别模型的完整指南与避坑实践
  • Rasa 实战:解决 Transliteration 与 CountVectorsFeaturizer 的冲突问题
  • CCF GESP C++2 级编程能力认证试题
  • AI 论文写作、查重与降重工具功能介绍
  • HTML5 结合 AI 实现智能场景渲染与交互

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如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