1.什么是seaborn库
基于matplotlib的更加高级的封装库,致力于使用极少的代码绘制出科研论文配图。其分为2类:统计关系型、数据分布型、分类数据型、回归模型分析型、多子图网格型。
2. 统计关系型
通过统计分析变量间的相关性得出数据集变量间的相互关系和相互依赖的程度。
- Scatterplot():散点图、气泡图
- Relplot():数据拟合散点图
- Lineplot():线图、带标记的线图
3.数据分布型
用于可视化数据的分布情况,即了解数据的覆盖范围、 中心趋势、异常值等基本情况。
- displot():数据分布图
- histplot():直方图
- kdeplot():核密度图
- ecdfplot():经验分布函数(或称为经验累积分 布函数,即 ECDF)图
- rugplot():轴底部毯形图
4.分类数据型
以X 轴或 Y 轴作为分类轴的绘图函数来绘制分类数据型图
- stripplot():抖动散点图
- swarmplot():蜂巢图
- boxplot():箱线图
- violinplot():带误差线“小提琴”图
- boxenplot():增强型箱线图
- pointplot():带误差线点图
- barplot():带误差线柱形图
- countplot():分类统计柱形图
5.回归模型分析型
表示数据集中变量间的关系,使用统计模型来估计两组变量间的关系。
- lmplot():数据拟合回归图
- regplot() :线性回归模型拟合图
- residplot():线性回归残差图
6.多子图网格型
在面对按数据子集绘图、分行或分列显示子图和不同类型图组合等绘图要求时,多子图网格绘制功能可以一次性可视化展示数据集中各变量的变化情况。
- FacetGrid() 函数:可实现数据集中任一变量的分布和数据集子集中多个变量之间关系的可视化展示。其可实现行、列、色调 3 个维度的数值映射,其中,行、列维度与所得的轴阵列有明显的对应关系,色调变量可被视为沿深度轴的第三维,用不同的颜色绘制不同级别的数据。
graph = sns.FacetGrid(df, col ='time', hue ='smoker')
# map the above form facetgrid with some attributes
graph.map(sns.regplot, "total_bill", "tip").add_legend()
graph.add_legend()
- PairGrid() 函数:主要用于绘制数据集中具有成对关系的多子图网格型图。在PairGrid() 函数中,每个行和列都会被分配一个不同的变量,这就导致绘制结果为显示数据集中成对变量间关系的图。这种图也被称为“散点图矩阵”。
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()
7.绘图风格、颜色主题和绘图元素缩放
与Matplotlib 相比,Seaborn 有更多的绘图风格和颜色主题。
sns.set_style("style_name") #设置绘图风格
sns.set_palette("palette_name") #设置颜色主题
sns.set_context("context_name") #设置绘图元素缩放比例
-
绘图风格:参数 style 的Seaborn可选值包括 darkgrid、whitegrid、dark、white 和 ticks,参数 rc 则用于覆盖预设 Seaborn 样式字典中的值的参数映射,只更新样式中的一部分参数。
-
颜色主题:包含多色系、单色系和双色渐变色系 3 类颜色主题。可通过sns.color_palette函数来设置不同颜色主题的显示效果。
-
绘图元素缩放比例:通过设置 Seaborn 中 set_context函数的参数context,我们可以实现对绘图元素的缩放处理。参数context的可选值为 paper、notebook(默认)、talk 和 poster,缩放比例依次增大。