当前位置: 首页 > article >正文

Python—数据可视化Seaborn大全:参数详解与实战案例全解析【第52篇—python:Seaborn大全】

文章目录

  • Seaborn库常用绘图详解与实战
    • 引言
    • 安装与导入
    • 一、散点图
      • 参数说明
      • 实战案例
    • 二、直方图
      • 参数说明
      • 实战案例
    • 三、线性关系图
      • 参数说明
      • 实战案例
    • 四、热力图
      • 参数说明
      • 实战案例
    • 五、分布图
      • 参数说明
      • 实战案例
    • 六、箱线图
      • 参数说明
      • 实战案例
    • 七、联合分布图
      • 参数说明
      • 实战案例
    • 八、小提琴图
      • 参数说明
      • 实战案例
    • 九、成对关系图
      • 参数说明
      • 实战案例
    • 十、自定义调色板
      • 参数说明
      • 实战案例
    • 结语

Seaborn库常用绘图详解与实战

引言

Seaborn 是一个基于 Matplotlib 的数据可视化库,它提供了一些高层次的接口,使得绘图变得更加简单和美观。本文将深入探讨 Seaborn 库的常用绘图功能,包括详细的参数说明和实战案例,帮助读者更好地理解和运用 Seaborn 进行数据可视化。

image-20240203115339576

安装与导入

首先,确保你已经安装了 Seaborn 库。如果没有安装,可以使用以下命令:

pip install seaborn

导入 Seaborn 通常使用以下方式:

import seaborn as sns
import matplotlib.pyplot as plt

一、散点图

散点图是一种常用于展示两个变量之间关系的图表。在 Seaborn 中,我们可以使用 sns.scatterplot() 函数来绘制。

参数说明

  • x:x轴上的数据
  • y:y轴上的数据
  • hue:指定颜色变量
  • style:指定样式变量
  • size:指定点的大小变量

实战案例

import seaborn as sns
import matplotlib.pyplot as plt

# 创建样本数据
data = sns.load_dataset("iris")

# 绘制散点图
sns.scatterplot(x="sepal_length", y="sepal_width", hue="species", style="species", size="petal_length", data=data)

# 显示图例
plt.legend()
plt.title("散点图 - 花萼长度与宽度关系")
plt.show()

image-20240203115148706

二、直方图

直方图用于显示数据分布情况,Seaborn 中的 sns.histplot() 函数可以很方便地绘制直方图。

参数说明

  • data:数据集
  • x:x轴上的数据
  • hue:指定颜色变量
  • multiple:当有 hue 参数时,控制多层直方图的显示方式

实战案例

import seaborn as sns
import matplotlib.pyplot as plt

# 创建样本数据
data = sns.load_dataset("tips")

# 绘制直方图
sns.histplot(data=data, x="total_bill", hue="sex", multiple="stack", kde=True)

# 显示图例
plt.legend()
plt.title("总消费金额直方图 - 性别分布")
plt.show()

三、线性关系图

Seaborn 提供了 sns.regplot() 函数来绘制线性回归图,展示两个变量之间的线性关系。

参数说明

  • x:x轴上的数据
  • y:y轴上的数据
  • hue:指定颜色变量
  • marker:指定数据点的标记
  • scatter_kws:控制散点图的其他属性

实战案例

import seaborn as sns
import matplotlib.pyplot as plt

# 创建样本数据
data = sns.load_dataset("tips")

# 绘制线性关系图
sns.regplot(data=data, x="total_bill", y="tip", hue="sex", marker="o", scatter_kws={"s": 100})

# 显示图例
plt.legend()
plt.title("线性关系图 - 消费金额与小费")
plt.show()

四、热力图

热力图是一种以颜色变化来显示数据矩阵的图表,常用于展示相关性或模式。Seaborn 中的 sns.heatmap() 函数是绘制热力图的利器。

参数说明

  • data:数据集,通常是一个二维矩阵
  • cmap:指定颜色映射
  • annot:在每个单元格显示数值
  • linewidthslinecolor:控制单元格之间的线条宽度和颜色

实战案例

import seaborn as sns
import matplotlib.pyplot as plt

# 创建样本数据
data = sns.load_dataset("flights")
pivot_data = data.pivot_table(index="month", columns="year", values="passengers")

# 绘制热力图
sns.heatmap(data=pivot_data, cmap="YlGnBu", annot=True, linewidths=.5, linecolor="white")

plt.title("月度乘客数热力图")
plt.show()

五、分布图

Seaborn 的 sns.distplot() 函数可以绘制直方图并拟合核密度估计,用于展示单变量的分布情况。

参数说明

  • a:绘制分布图的数据
  • hist:是否显示直方图
  • kde:是否显示核密度估计曲线
  • rug:在 x 轴上绘制小的竖线,表示每个观测值的分布

实战案例

import seaborn as sns
import matplotlib.pyplot as plt

# 创建样本数据
data = sns.load_dataset("iris")

# 绘制分布图
sns.distplot(data["sepal_length"], hist=True, kde=True, rug=True)

plt.title("花萼长度分布图")
plt.show()

六、箱线图

箱线图是一种展示数据分布的图表,Seaborn 中的 sns.boxplot() 函数可以绘制箱线图。

参数说明

  • xy:数据集中的变量
  • hue:指定颜色变量
  • notch:是否绘制缺口箱线图
  • whis:确定离群值的位置

实战案例

import seaborn as sns
import matplotlib.pyplot as plt

# 创建样本数据
data = sns.load_dataset("tips")

# 绘制箱线图
sns.boxplot(data=data, x="day", y="total_bill", hue="sex", notch=True, whis=1.5)

plt.title("每天消费金额箱线图")
plt.show()

七、联合分布图

Seaborn 的 sns.jointplot() 函数可以绘制两个变量之间的联合分布图,同时展示单变量的分布情况。

参数说明

  • xy:绘制联合分布图的两个变量
  • kind:指定联合分布图的类型,可选值包括 “scatter”、“kde”、“hex” 等
  • hue:指定颜色变量
  • joint_kws:控制联合图的其他属性

实战案例

import seaborn as sns
import matplotlib.pyplot as plt

# 创建样本数据
data = sns.load_dataset("iris")

# 绘制联合分布图
sns.jointplot(data=data, x="sepal_length", y="sepal_width", kind="scatter", hue="species")

plt.title("花萼长度与宽度联合分布图")
plt.show()

image-20240203115406591

八、小提琴图

小提琴图是箱线图的一种变体,Seaborn 中的 sns.violinplot() 函数可以绘制小提琴图,展示数据的分布情况。

参数说明

  • xy:数据集中的变量
  • hue:指定颜色变量
  • split:当有 hue 参数时,是否拆分小提琴图
  • inner:指定小提琴图内部显示的内容

实战案例

import seaborn as sns
import matplotlib.pyplot as plt

# 创建样本数据
data = sns.load_dataset("tips")

# 绘制小提琴图
sns.violinplot(data=data, x="day", y="total_bill", hue="sex", split=True, inner="quartile")

plt.title("每天消费金额小提琴图")
plt.show()

image-20240203115436810

九、成对关系图

Seaborn 的 sns.pairplot() 函数用于绘制数据集中各个数值变量两两之间的散点图,对于多变量数据集的初步探索非常有帮助。

参数说明

  • data:数据集
  • hue:指定颜色变量
  • kind:指定对角线上显示的图表类型

实战案例

import seaborn as sns
import matplotlib.pyplot as plt

# 创建样本数据
data = sns.load_dataset("iris")

# 绘制成对关系图
sns.pairplot(data=data, hue="species", kind="scatter")

plt.suptitle("花萼与花瓣特征成对关系图")
plt.show()

十、自定义调色板

Seaborn 允许用户使用自定义调色板,通过 sns.set_palette() 函数可以指定颜色的顺序。

参数说明

  • palette:调色板名称或颜色列表

实战案例

import seaborn as sns
import matplotlib.pyplot as plt

# 创建样本数据
data = sns.load_dataset("tips")

# 自定义调色板
custom_palette = ["#FF5733", "#33FF57", "#3357FF", "#FF33C2"]
sns.set_palette(custom_palette)

# 绘制小提琴图
sns.violinplot(data=data, x="day", y="total_bill", hue="sex", split=True, inner="quartile")

plt.title("每天消费金额小提琴图 - 自定义调色板")
plt.show()

结语

本文详细介绍了 Seaborn 库中一系列常用的绘图功能,包括散点图、直方图、线性关系图、热力图、分布图、箱线图、联合分布图、小提琴图、成对关系图以及自定义调色板。通过深入了解每个函数的参数及实战案例,读者应该能够更自如地使用 Seaborn 进行数据可视化。

Seaborn 提供了直观易用的高级接口,使得绘图变得更加简便,同时保持了高度的定制性。无论是初学者还是有一定经验的数据科学家,都可以在 Seaborn 中找到适合自己需求的工具。

在实际工作中,选择合适的图表类型、调整颜色和样式,都是提高数据可视化效果的关键。通过多次实践,读者将更加熟练地运用 Seaborn 进行数据分析,为数据的探索和展示提供更有力的支持。

希望本文能够帮助读者更深入地了解 Seaborn 库,激发大家在数据可视化领域的创造力,为数据科学的发展贡献一份力量。愿每个数据背后的故事都能在绚丽的图表中得以展现。


http://www.kler.cn/a/227420.html

相关文章:

  • 螺旋形迷宫(c++题解)
  • C语言实现跳表(附源码)
  • LabVIEW叶片厚度远程监控
  • MATLAB计算多边形质心/矩心
  • C语言常见面试题:C语言中如何进行数据库编程?
  • Java希尔排序
  • 离线数仓-数据治理
  • C++ //练习 4.2 根据4.12节中的表,在下述表达式的合理位置添加括号,使得添加括号后运算对象的组合顺序与添加括号前一致。
  • 2023年最受欢迎的4款绘图软件全面评测!
  • Hadoop生态系统中一些关键组件的详细解析
  • 如何选择Centos的替代者
  • GO EASY 框架 之 NET 05
  • 【数据结构】二叉树链式结构的实现
  • 明天是几号(c++题解)
  • scoped样式隔离原理
  • springboot在线文档的集成方式
  • MaxKey 单点登录认证系统——登录验证流程分析
  • LeAPI 后端接口开发 - 发布、下线接口
  • 正点原子--STM32定时器学习笔记(2)
  • 商品信息全景图:API接口在聚合商品数据中的应用