Python可视化 | Seaborn5分钟入门(七)——pairplot

微信公众号:「Python读财」
如有问题或建议,请公众号留言

Seaborn是基于matplotlib的Python可视化库。它提供了一个高级界面来绘制有吸引力的统计图形。Seaborn其实是在matplotlib的基础上进行了更高级的API封装,从而使得作图更加容易,不需要经过大量的调整就能使你的图变得精致。

今天给大家介绍的是pairplot,话不多说,直接进入正题。

注:所有代码均在IPython notebook中实现

pairplot

pairplot中pair是成对的意思,pairplot主要展现的是变量两两之间的关系(线性或非线性,有无较为明显的相关关系),照例来总览一下pairplot的API。

image

下面用鸢尾花数据集来介绍pairplot的用法。鸢尾花数据集已经用了不少次了,但大多数人(我也)可能还不知道鸢尾花长啥样,先上张鸢尾花的图。

image

先导入相关的包,并配置相关的参数

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() #数据集的内容如下 

image

先来直观看看pairplot长什么样

sns.pairplot(data)

image

可以看到对角线上是各个属性的直方图(分布图),而非对角线上是两个不同属性之间的相关图,从图中我们发现,花瓣的长度和宽度之间以及萼片的长短和花瓣的长、宽之间具有比较明显的相关关系。

接下来介绍一下pairplot主要的参数及其用法

kind:用于控制非对角线上的图的类型,可选"scatter""reg"

diag_kind:控制对角线上的图的类型,可选"hist""kde"

sns.pairplot(data,kind="reg",diag_kind="kde")

image

kind 参数设置为 "reg" 会为非对角线上的散点图拟合出一条回归直线,更直观地显示变量之间的关系。

那对于不同种类的花,其花萼和花瓣有什么比较鲜明的特征吗?我们通过hue参数把不同种类的花区分开,进行进一步分析。

hue :针对某一字段进行分类

#不同类别的点会以不同的颜色显现出来
sns.pairplot(data,hue="种类") 

image

我们可以从经过hue分类后的pairplot中发现,不论是从对角线上的分布图还是从分类后的散点图,都可以看出对于不同种类的花,其萼片长、花瓣长、花瓣宽的分布差异较大,换句话说,这些属性是可以帮助我们去识别不同种类的花的。

比如,对于萼片、花瓣长度较短,花瓣宽度较窄的花,那么它大概率是山鸢尾。

当然,可以通过palette参数来调出自己想要的颜色

palette:控制色调

sns.pairplot(data,hue="种类",palette="husl")

image

markers:控制散点的样式

sns.pairplot(data,hue="种类",markers=["+", "s", "D"])

image

当我们想单独研究某两个(或多个)变量的关系时,我们只需要通过vars参数指定你想研究的变量

vars,x_vars,y_vars:选择数据中的特定字段,以list形式传入

#单独用vars参数选择"萼片长 "和"花瓣长"两种属性
sns.pairplot(data,vars=["萼片长","花瓣长"]) 

image

# 用x_vars和 y_vars参数指定
# 需要注意的是,x_vars和y_vars要同时指定
sns.pairplot(data,x_vars=["萼片长","花瓣宽"],
             y_vars=["萼片宽","花瓣长"]) 

image

更多的样式可以通过plot_kwsdiag_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")) 

image

扫码关注公众号「Python读财」,第一时间获取干货,还可以加Python学习交流群!!
公众号二维码.jpg

Image placeholder
zhouqi
未设置
  11人点赞

没有讨论,发表一下自己的看法吧

推荐文章
Python可视化 | Seaborn5分钟入门(二)——barplot&countplot&pointplot

微信公众号:「Python读财」如有问题或建议,请公众号留言Seaborn是基于matplotlib的Python可视化库。它提供了一个高级界面来绘制有吸引力的统计图形。Seaborn其实是在matp

Python可视化 | Seaborn5分钟入门(三)——boxplot和violinplot

微信公众号:「Python读财」如有问题或建议,请公众号留言Seaborn是基于matplotlib的Python可视化库。它提供了一个高级界面来绘制有吸引力的统计图形。Seaborn其实是在matp

Python可视化 | Seaborn5分钟入门(一)——kdeplot和distplot

微信公众号:「Python读财」如有问题或建议,请公众号留言Seaborn是基于matplotlib的Python可视化库。它提供了一个高级界面来绘制有吸引力的统计图形。Seaborn其实是在matp

Python可视化 | Seaborn5分钟入门(四)——stripplot和swarmplot

微信公众号:「Python读财」如有问题或建议,请公众号留言Seaborn是基于matplotlib的Python可视化库。它提供了一个高级界面来绘制有吸引力的统计图形。Seaborn其实是在matp

Python可视化 | Seaborn5分钟入门(五)——lmplot

微信公众号:「Python读财」如有问题或建议,请公众号留言Seaborn是基于matplotlib的Python可视化库。它提供了一个高级界面来绘制有吸引力的统计图形。Seaborn其实是在matp

Python可视化 | Seaborn5分钟入门(六)——heatmap热力图

微信公众号:「Python读财」如有问题或建议,请公众号留言Seaborn是基于matplotlib的Python可视化库。它提供了一个高级界面来绘制有吸引力的统计图形。Seaborn其实是在matp

5分钟带你了解浪潮商用机器FP5466G2服务器

海量数据时代,传统的存储架构已经难以满足大规模高并发下系统稳定性,存储设备的弹性扩展和异构存储资源整合等诸多挑战。浪潮商用机器正是针对复杂而多样化的应用需求和大数据、人工智能等新兴应用场景,全新推出企

那个“炫酷狂拽”的数据可视化利器AntV 11.22版全新发布啦

导读AntV是一个数据可视化项目,也是一个团队,蚂蚁金服数据可视化团队,一群有爱有梦的人,怀揣「让人们在数据世界里获得视觉化思考能力」的梦想前行,希望成就智能时代全球领先的数据可视化解决方案,满足与日

2019值得关注的数据可视化工具TOP5

 数据可视化在数据分析过程中的扮演着非常重要的角色。对于数据科学家或数据分析师来说,以更直观、便于查看、甚至更吸引人的视觉效果来呈现数据是很重要的。数据可视化是一个有效的市场工具,通过这种方式,从海量

智能数据可视化的5个步骤

如今,许多企业正在利用模型、数据分析、数据可视化和仪表板等措施实现数据驱动。例如商业领袖注重提升客户体验,技术领导者注重分析速度和网站指标,应用程序团队在其应用程序中嵌入分析程序等等。这意味着更多的开

基于Pandas+ECharts的金融大数据可视化实现方案

前言最近无意中看到一篇文章,介绍的是在IPythonNotebook里实现ECharts的可视化效果。我个人对ECharts一直是推崇有加,是baidu发布的开源项目中我比较喜欢的一个,绝对是良心之作

可视化的JavaScript:作用域(链)

首先,来看看下面的代码:constname="Lydia" constage=21 constcity="SanFrancisco" functiongetPersonInfo(){ constn

可视化的JavaScript:事件循环

首先,事件循环是什么,为什么要理解它?JavaScript是单线程的:一次只能运行一个任务。通常这没什么大不了的,但现在想象一下我们正在运行一个需要30秒的任务。在这个任务中,我们要等待30秒,然后才

可视化的JavaScript:JavaScript引擎运行原理

JavaScript很酷,但是JavaScript引擎是如何才能理解我们编写的代码呢?作为JavaScript开发人员,我们通常不需要自己处理编译器。然而,了解JavaScript引擎的基础知识并了解

打造高逼格、可视化的Docker容器监控系统平台

关于Docker技术的文章之前也断断续续写了几篇:Docker容器系列文章|Docker技术入门(一)Docker容器系列文章|Docker技术入门(二)Docker容器系列文章|这20个Docker

分享一个可视化开发vue框架下的各类ui的web在线表单设计布局器

新手发帖,第一次不小心刷新了一下就没了本人刚入门vue,偶然间发现这款布局器挺好的,可视化开发element所以分享给大家网站地址:http://lowcode.magicalcoder.c...嵌入

【python测试开发栈】帮你总结python random模块高频使用方法

随机数据在平时写python脚本时会经常被用到,比如随机生成0和1来控制逻辑、或者从列表中随机选择一个元素(其实抽奖程序也类似,就是从公司所有人中随机选择中奖用户)等等。这篇文章,就帮大家整理在pyt

流畅的Python读书笔记 --- 第一章 Python数据模型

近期开始读“流畅的Python”这本书,想把自己的读书笔记分享给大家,希望能帮到也对这本书感兴趣但是没时间看的各位。(文章中大部分的话和图片摘录总结自“流畅的Python”一书,以及python官方网

【python测试开发栈】帮你总结python time模块高频使用方法

在平时写python脚本时,时间是我们经常用到的数据,比如:时间戳、前端展示的对应格式的时间等,在python中主要有三个和时间处理相关的模块:time、datetime、calendar,这篇文章主

4分钟看尽Top编程语言15年沉浮:C#默Java泪,Python终上位!

大数据文摘出品作者:宁静哪种编程语言最火爆?在不同的时代,这个问题也有着不同的答案,而一部编程语言的使用人数变迁史,实际上也是一部计算机世界的成长编年史。一位名叫PYPL的油管up主很尽心地统计了从2

最适合入门的Python数据分析实战项目

微信公众号:「Python读财」如有问题或建议,请公众号留言伴随着移动互联网的飞速发展,越来越多用户被互联网连接在一起,用户所积累下来的数据越来越多,市场对数据方面人才的需求也越来越大,由此也带火了如

Python 打包——过去、现在与未来

英文|Pythonpackaging-Past,Present,Future【1】原作|BERNATGABOR译者|豌豆花下猫声明:本文获得原作者授权翻译,转载请保留原文出处,请勿用于商业或非法用途。

使用Jupyter NoteBook进行IB查询和交易,以及使用算法交易示例

在搞好IB盈透接口后,试了下客户端交易,但是最终目的还是使用程序化交易。发现vnpy已经提供的Script_engine来支持JupyterNoteBook交易的,而且非常方便调用。 这里就用写了基于

再见 Spring Boot 1.X ,Spring Boot 2.X 走向舞台中心

2019年8月6日,Spring官方在其博客宣布,SpringBoot1.x停止维护,SpringBoot1.x生命周期正式结束。其实早在2018年7月30号,Spring官方就已经在博客进行过预告,

Pandas数据处理三板斧——map、apply、applymap详解

微信公众号:「Python读财」如有问题或建议,请公众号留言在日常的数据处理中,经常会对一个DataFrame进行逐行、逐列和逐元素的操作,对应这些操作,Pandas中的map、apply和apply