Seaborn 基本语法及特点

简介

Seaborn 是 Python 中一个非常受用户欢迎的可视化库。Seaborn 在 Matplotlib 的基础上进行了更加高级的封装,用户能够使用极少的代码绘制出拥有丰富统计信息的科研论文配图。Seaborn 基于 Matplotlib,Matplotlib 中大多数绘图函数的参数都可在 Seaborn 绘图函数中使用,对 Python 的其他库(比如 Numpy/Pandas/Scipy)有很好的支持。

安装 Matplotlib

python -m pip install matplotlib

安装 Seaborn

pip install seaborn

图类型

Seaborn 提供的可绘制图类型包括

  • 统计关系型(statistical relationships)
  • 数据分布型(distributions of data)
  • 分类数据型(categorical data)
  • 回归模型分析型(regressionModels)
  • 多子图网格型(multi-plot grids)

关系型图

数据集变量间的相互关系和相互依赖的程度都可以通过统计分析变量间的相关性获知
Seaborn 中的关系型图绘制函数如下所示:

数据分布型图

在对数据进行分析或建模之前,我们需要先了解数据的分布情况,以及数据的覆盖范围、中心趋势、异常值等基本情况。

Seaborn 中的数据分布型图绘制函数:

分类数据型图

在面对数据组中具有离散型变量(分类变量)的情况时,我们可使用以 X 轴或 Y 轴作为分类轴的绘图函数来绘制分类数据型图。

Seaborn 中常见的分类数据型图绘制函数:


回归模型分析型图

我们可以使用回归模型分析型图表示数据集中变量间的关系,使用统计模型来估计两组变量间的关系。

Seaborn 中的回归分析型图绘制函数:

多子图网格型图

相比 Matplotlib,Seaborn 提供了多个子图网格绘图函数,它们可快速实现分面图的展示。在面对按数据子集绘图、分行或分列显示子图和不同类型图组合等绘图要求时,多子图网格绘制功能不但可以一次性可视化展示数据集中各变量的变化情况,而且可以减少绘制复杂图的时间。

FacetGrid () 函数

Seaborn 提供的 FacetGrid () 函数可实现数据集中任一变量的分布和数据集子集中多个变量之间关系的可视化展示。

FacetGrid() 函数可以实现行、列、色调 3 个维度的数值映射,其中,行、列维度与所得的轴阵列有明显的对应关系,色调变量可被视为沿深度轴的第三维,用不同的颜色绘制不同级别的数据。

核心代码;

import seaborn as sns
import matplotlib.pyplot as plt
g = sns.FacetGrid (df, col ='time ', hue = 'smoker ')
g.map (sns.regplot, "total_ bill", "tip")
g.add_legend ( )

绘制分面图结果:

PairGrid () 函数

Seaborn 提供的 PairGrid () 函数主要用于绘制数据集中具有成对关系的多子图网格型图。在 PairGrid () 函数中,每个行和列都会被分配一个不同的变量,这就导致绘制结果为显示数据集中成对变量间关系的图。这种图也被称为“散点图矩阵”。

核心代码:

import Seaborn as sns
import matplotlib.pyplot as plt
penguins = sns.load_dataset ("penguins")
x_vars = ["body_mass_g", "bill_length_mm", "bill_depth_mm",]
y_vars = ["body_mass_g"]
g = sns.PairGrid(penguins,hue="species", x_vars=x_vars, y_vars=y_vars)
g.map_diag (sns.histplot, color=".3")
g.map_offdiag(sns.scatterplot)
g.add_legend ()

绘图风格、颜色主题和绘图元素缩放比例

和 Matplotlib 相比,Seaborn 有更多的绘图风格和颜色主题,通过下列函数设置颜色主题、绘图风格和绘图元素缩放比例。

sns.set_style("style name") #设置绘图风格
sns.set_palette("palette_name")#设置颜色主题
sns.set_context("context_name")#设置绘图元素缩放比例

Seaborn 提供的 set_theme () 函数包含了上述 3 个函数的所有功能,即通过设置 set_theme() 函数中的参数 palettestylecontext,就可分别控制颜色主题、绘图风格和绘图元素缩放比例。

绘图风格

set_style() 参数 style 的可选值包括 darkgridwhitegriddarkwhiteticks,参数 rc 则用于覆盖预设 Seaborn 样式字典中的值的参数映射,只更新样式中的一部分参数。
下面是 4 种绘图风格的可视化效果:

颜色主题

set_palette() 函数包含多色系、单色系和双色渐变色系 3 类颜色主题,不同颜色主题的显示效果可通过 sns.color_palette () 函数来查看。

Seaborn 中部分颜色主题选项的可视化效果:

绘图元素缩放比例

set_context() 函数的参数 context 可选值为 papernotebook(默认)、talkposter,缩放比例依次增大。

参考书籍:宁海涛.科研论文配图绘制指南——基于Python[M].北京:人民邮电出版社,2023:31-36.

猜你喜欢

转载自blog.csdn.net/m0_52316372/article/details/132484798