微信公众号:「Python读财」
若有问题或建议,请公众号留言
Seaborn是基于matplotlib的Python可视化库。它提供了一个高级界面来绘制有吸引力的统计图形。Seaborn实际上是在matplotlib的基础上进行了更高级的API封装,从而使得做图更加容易,不须要通过大量的调整就能使你的图变得精致。python
今天给你们介绍的是pairplot,话很少说,直接进入正题。微信
注:全部代码均在IPython notebook中实现学习
pairplot中pair是成对的意思,pairplot主要展示的是变量两两之间的关系(线性或非线性,有无较为明显的相关关系),照例来总览一下pairplot的API。spa
下面用鸢尾花数据集来介绍pairplot的用法。鸢尾花数据集已经用了很多次了,但大多数人(我也)可能还不知道鸢尾花长啥样,先上张鸢尾花的图。3d
先导入相关的包,并配置相关的参数code
import seaborn as sns import pandas as pd import matplotlib.pyplot as plt %matplotlib inline sns.set_style('white',{'font.sans-serif':['simhei','Arial']})
#导入seaborn自带iris数据集 data=sns.load_dataset("iris") #为了方便你们观看,把列名换成中文的 data.rename(columns={"sepal_length":"萼片长", "sepal_width":"萼片宽", "petal_length":"花瓣长", "petal_width":"花瓣宽", "species":"种类"},inplace=True) kind_dict = { "setosa":"山鸢尾", "versicolor":"杂色鸢尾", "virginica":"维吉尼亚鸢尾" } data["种类"] = data["种类"].map(kind_dict) data.head() #数据集的内容以下
先来直观看看pairplot长什么样blog
sns.pairplot(data)
能够看到对角线上是各个属性的直方图(分布图),而非对角线上是两个不一样属性之间的相关图,从图中咱们发现,花瓣的长度和宽度之间以及萼片的长短和花瓣的长、宽之间具备比较明显的相关关系。ci
接下来介绍一下pairplot主要的参数及其用法rem
kind
:用于控制非对角线上的图的类型,可选"scatter"
与"reg"
pandas
diag_kind
:控制对角线上的图的类型,可选"hist"
与"kde"
sns.pairplot(data,kind="reg",diag_kind="kde")
将 kind
参数设置为 "reg"
会为非对角线上的散点图拟合出一条回归直线,更直观地显示变量之间的关系。
那对于不一样种类的花,其花萼和花瓣有什么比较鲜明的特征吗?咱们经过hue
参数把不一样种类的花区分开,进行进一步分析。
hue
:针对某一字段进行分类
#不一样类别的点会以不一样的颜色显现出来 sns.pairplot(data,hue="种类")
咱们能够从通过hue
分类后的pairplot
中发现,不管是从对角线上的分布图仍是从分类后的散点图,均可以看出对于不一样种类的花,其萼片长、花瓣长、花瓣宽的分布差别较大,换句话说,这些属性是能够帮助咱们去识别不一样种类的花的。
好比,对于萼片、花瓣长度较短,花瓣宽度较窄的花,那么它大几率是山鸢尾。
固然,能够经过palette
参数来调出本身想要的颜色
palette
:控制色调
sns.pairplot(data,hue="种类",palette="husl")
markers
:控制散点的样式
sns.pairplot(data,hue="种类",markers=["+", "s", "D"])
当咱们想单独研究某两个(或多个)变量的关系时,咱们只须要经过vars
参数指定你想研究的变量
vars
,x_vars
,y_vars
:选择数据中的特定字段,以list
形式传入
#单独用vars参数选择"萼片长 "和"花瓣长"两种属性 sns.pairplot(data,vars=["萼片长","花瓣长"])
# 用x_vars和 y_vars参数指定 # 须要注意的是,x_vars和y_vars要同时指定 sns.pairplot(data,x_vars=["萼片长","花瓣宽"], y_vars=["萼片宽","花瓣长"])
更多的样式能够经过plot_kws
和diag_kws
来进行控制
plot_kws
:用于控制非对角线上的图的样式
diag_kws
:用于控制对角线上图的样式
sns.pairplot(data,diag_kind="kde", plot_kws=dict(s=50,edgecolor="w",color="g",alpha=.5), diag_kws=dict(shade=True,color="r"))
扫码关注公众号「Python读财」,第一时间获取干货,还能够加Python学习交流群!!