当前位置: 首页 > 资讯 > >正文

一文掌握Seaborn的高级技巧

来源:哔哩哔哩    时间:2023-08-05 10:19:10

X 关闭

Seaborn是一个用于统计图形绘制的Python库,它基于matplotlib,并且与pandas数据结构紧密集成。Seaborn可以帮助你探索和理解你的数据,它提供了一些高级的绘图功能,让你的图形更加美观和富有信息。本教程将介绍Seaborn的一些进阶特性,包括:

分面网格(Facet grids)

回归图(Regression plots)


【资料图】

热力图(Heatmaps)

聚类图(Cluster maps)

关联图(Pair plots)

为了更好地理解这些特性,我们需要先导入Seaborn模块,并创建一些示例数据集:

分面网格

分面网格是一种用于可视化多个变量之间的关系的方法,它可以将一个大的图形分割成多个小的子图,每个子图展示了不同条件下的数据分布。Seaborn提供了以下函数来创建分面网格:

:创建一个空的分面网格对象,可以指定行、列、色彩等维度来划分子图。

:创建一个基于散点图或折线图的分面网格,可以指定kind参数来选择绘制的类型。

:创建一个基于直方图或密度图的分面网格,可以指定kind参数来选择绘制的类型。

:创建一个基于分类变量的分面网格,可以指定kind参数来选择绘制的类型。

例如,我们可以使用以下方式来创建一个基于散点图的分面网格,展示了小费数据集中不同时间、性别和是否吸烟的顾客之间的总消费和小费的关系:

这里,我们使用了relplot函数,并指定了data参数为tips数据集,x参数为total_bill变量,y参数为tip变量,col参数为time变量,hue参数为sex变量,style参数为smoker变量。这样,我们就得到了一个由两列组成的分面网格,每列对应了time变量的一个水平(Lunch或Dinner),每个子图中用不同颜色和形状来区分sex和smoker变量的水平。我们可以看到,在不同条件下,总消费和小费之间存在着一定的正相关关系,但是也有一些异常值和离群值。

我们也可以使用以下方式来创建一个基于直方图的分面网格,展示了鸢尾花数据集中不同品种和花瓣长度之间的分布情况:

这里,我们使用了displot函数,并指定了data参数为iris数据集,x参数为petal_length变量,col参数为species变量,kde参数为True。这样,我们就得到了一个由三列组成的分面网格,每列对应了species变量的一个水平(setosa, versicolor, virginica),每个子图中用直方图和核密度估计曲线来展示petal_length变量的分布情况。我们可以看到,在不同品种下,花瓣长度呈现出不同的模式,setosa品种的花瓣长度较短,versicolor和virginica品种的花瓣长度较长,且后者的方差较大。

回归图

回归图是一种用于可视化两个变量之间的线性关系的方法,它可以在散点图的基础上绘制出最佳拟合的回归线和置信区间。Seaborn提供了以下函数来创建回归图:

:创建一个单独的回归图,可以指定不同的参数来控制回归模型的类型、置信区间的计算方法、散点图的样式等。

:创建一个基于回归图的分面网格,可以指定行、列、色彩等维度来划分子图,以及其他与regplot相同的参数。

例如,我们可以使用以下方式来创建一个单独的回归图,展示了小费数据集中总消费和小费之间的线性关系,并且使用不同颜色来区分是否吸烟的顾客:

这里,我们使用了regplot函数,并指定了data参数为tips数据集,x参数为total_bill变量,y参数为tip变量,hue参数为smoker变量。这样,我们就得到了一个回归图,其中用不同颜色的散点和线条来表示smoker变量的两个水平(Yes或No),并且绘制了95%的置信区间。我们可以看到,在总消费和小费之间存在着一定的正相关关系,但是吸烟与否对这种关系没有显著的影响。

我们也可以使用以下方式来创建一个基于回归图的分面网格,展示了小费数据集中不同时间和性别下总消费和小费之间的线性关系,并且使用不同形状来区分是否吸烟的顾客:

这里,我们使用了lmplot函数,并指定了data参数为tips数据集,x参数为total_bill变量,y参数为tip变量,col参数为time变量,row参数为sex变量,hue参数为smoker变量,markers参数为[“o”, “x”]。这样,我们就得到了一个由两行两列组成的分面网格,每行对应了sex变量的一个水平(Male或Female),每列对应了time变量的一个水平(Lunch或Dinner),每个子图中用不同颜色和形状来表示smoker变量的两个水平(Yes或No),并且绘制了95%的置信区间。我们可以看到,在不同条件下,总消费和小费之间存在着一定的正相关关系,但是时间、性别和是否吸烟对这种关系有不同程度的影响。

热力图

热力图是一种用于可视化二维数据表格中数值大小和颜色深浅之间的关系的方法,它可以将数据表格中每个单元格根据数值映射到一个颜色渐变上,并且在图形上显示数值或百分比。Seaborn提供了以下函数来创建热力图:

:创建一个基于数据表格的热力图,可以指定不同的参数来控制颜色映射、数值显示、注释、边界等。

:创建一个基于数据表格的聚类热力图,可以指定不同的参数来控制聚类方法、颜色映射、数值显示、注释、边界等。

例如,我们可以使用以下方式来创建一个基于飞行数据集的热力图,展示了1949年到1960年之间每个月的飞行乘客数:

这里,我们使用了heatmap函数,并指定了data参数为flights数据表格,annot参数为True,fmt参数为"d",cmap参数为"Blues"。这样,我们就得到了一个热力图,其中用不同深浅的蓝色来表示飞行乘客数的大小,并且在每个单元格上显示具体的数值。我们可以看到,在这段时间内,飞行乘客数呈现出逐年增长和季节波动的趋势,其中7月和8月是最繁忙的月份,而1月和11月是最冷清的月份。

我们也可以使用以下方式来创建一个基于鸢尾花数据集的聚类热力图,展示了不同品种和花萼长度、花萼宽度、花瓣长度、花瓣宽度之间的相关性:

这里,我们使用了clustermap函数,并指定了data参数为iris数据集中变量之间的相关系数,annot参数为True,cmap参数为"vlag",center参数为0。这样,我们就得到了一个聚类热力图,其中用不同深浅的红色和蓝色来表示相关系数的正负和大小,并且在每个单元格上显示具体的数值。我们可以看到,在不同品种下,花萼长度和花萼宽度之间有较强的正相关性,而花萼长度和花瓣宽度之间有较强的负相关性。此外,聚类热力图还会根据相关性的相似度对行和列进行重新排序,使得更相关或更不相关的变量靠近对角线。

这就是Seaborn的一些进阶特性的介绍,希望对你有所帮助。如果你想了解更多关于Seaborn的内容,你可以访问[官方文档]或者[教程网站]。谢谢你的阅读!

X 关闭

推荐内容

最近更新

Copyright ©  2015-2022 南非机械网版权所有  备案号:沪ICP备2022005074号-13   联系邮箱:58 55 97 3@qq.com