Python绘图简要---基于Seaborn

目录

安装

绘图类型函数详解

关系绘图

数据分布型图

分类数据型图

​编辑 回归模型分析型图

关系绘图

基础实现

加入hue参数

添加col和row参数

分类绘图

swarmplot

小提琴图 

分布绘图

单变量分布

多变量分布

FacetGrid绘图

基本实现

​编辑 绘制多个图形

总结


        Seaborn 在 Matplotlib 的基础上进行了更加高级的封装,用户能够使用极少的代码绘制出拥有丰富统计信息的科研论文配图,使用难度相比之下更低。

安装

        官方文档:https://seaborn.pydata.org/tutorial.htm]

# 两种方式均可进行安装
# pip install seaborn

# conda install seaborn

绘图类型函数详解

关系绘图

        数据集变量间的相互关系和相互依赖的程度都可以通过统计分析变量间的相关性获知。在这一过程中,合理的可视化表示可以帮助读者更好地理解数据和发掘数据间的内在联系。Seaborn提供的scatterplot()、relplot()和lineplot()函数可用于绘制反映数据间关系的图。

 数据分布型图

        在对数据进行分析或建模之前,我们需要先了解数据的分布情况,以及数据的覆盖范围、 中心趋势、异常值等基本情况。Seaborn 提供的多个绘图函数可用于可视化数据的分布情况。

 分类数据型图

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

 回归模型分析型图

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

关系绘图

基础实现

import seaborn as sns

tips = sns.load_dataset("tips",cache=True) # 载入数据集
sns.relplot(x="total_bill",y="tip",data=tips)

        查看数据集分布:

加入hue参数

        hue参数可以用来控制第三个变量的颜色显示,即:

sns.relplot(x="total_bill",y="tip",hue="day",data=tips)

添加col和row参数

        col与row可以将所绘制的图像根据某个属性的值的个数分割成相应的列或行,比如在tips数据集中,可以按照col = 'sex' 划分为Male 与 Female。

sns.relplot(x="total_bill",y="tip",hue="day",col="sex",data=tips)

        当然也可以通过设置row = 'time'获取其余图像,此处不作进一步展示。

分类绘图

swarmplot

sns.catplot(x="day",y="total_bill",kind="swarm",data=tips,hue="sex")

小提琴图 

          小提琴图通常沿着水平轴展示不同的类别或分组,而竖直轴表示数据的取值范围。每个小提琴图由一个核密度估计图和两条连线组成,连线部分表示数据的分布范围,核密度估计图则显示数据的分布密度。小提琴图的形状可以帮助观察者判断数据的集中趋势、离散程度和偏斜程度。

sns.catplot(x="day",y="total_bill",data=tips,kind="violin",hue="time",split=True)

分布绘图

单变量分布

        单变量分布可以使用直方图进行表示,具体使用distplot。

import numpy as np
sns.set(color_codes=True)
titanic = sns.load_dataset("titanic")
titanic = titanic[~np.isnan(titanic['age'])]
sns.distplot(titanic['age'])

多变量分布

        对于多变量分布,我们往往是选择考察彼此之间的相关性,这个时候我们可以使用pairplot,将某个数据集中不同变量之间的俄关系图一次性绘制出来。

iris = sns.load_dataset("iris")
sns.pairplot(iris,vars=['sepal_length',"sepal_width",'petal_length','petal_width'])

         从中我们可以发现如length与width保持较强的正相关关系,这也与我们的直观认识一致。为进一步探索,此处还可以通过调整参数 diag_kind 与 kind 获取更加直观的图像。

sns.pairplot(iris,vars=['sepal_length',"sepal_width",'petal_length','petal_width'],diag_kind="kde",kind="reg")

FacetGrid绘图

基本实现

        创建一个 FacetGrid 对象,然后调用 map 方法。其中 map 方法的第一个参数是一个函数,后续 map 将调用这个函数来绘制图像,而后面的参数是传递给这个函数的参数。

tips = sns.load_dataset("tips")
g = sns.FacetGrid(tips)
g.map(plt.scatter,"total_bill","tip")

特别地,常用的一些绘图函数也集成于 FacetGrid 之中:

 绘制多个图形

        根据上文所讲解的超参数,即可使用FacetGrid进行实现:

g = sns.FacetGrid(tips,col="day",col_wrap=2)
g.map(sns.regplot,"total_bill","tip")

         也可以通过调整 hue 参数,来更好地进行可视化:

g = sns.FacetGrid(tips,col="day",hue="time", col_wrap=2)
g.map(sns.regplot,"total_bill","tip")

总结

        本次基于Python的第三方库Seaborn探究了科研配图的相关细节,宏观上讲解了从安装到绘图类型的简要知识,微观上分别以关系绘图、分类绘图、分布绘图以及FacetGrid绘图为例进行了动手实践,进一步加深了对Seaborn的理解,领悟到了使用Seaborn作图的小技巧。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值