专栏首页疯狂学习GISPython中seaborn pairplot绘制多变量两两相互关系联合分布图

Python中seaborn pairplot绘制多变量两两相互关系联合分布图

  联合分布(Joint Distribution)图是一种查看两个或两个以上变量之间两两相互关系的可视化形式,在数据分析中经常需要用到。一幅好看的联合分布图可以使得我们的数据分析更加具有可视性,让大家眼前一亮。

  那么,本文就将用seaborn来实现联合分布图的绘制。seaborn是一个基于matplotlib的Python数据可视化模块,借助于其,我们可以通过较为简单的操作,绘制出各类动人的图片。

  首先,引入需要的模块。

import pandas as pd
import seaborn as sns

  接下来,将存储有我们需要绘制联合分布图数据的文件导入。因为我是将数据存储于.csv文件,所以我这里用pd.read_csv来实现数据的导入。我的数据在.csv文件中长如下图的样子,其中共有107行,包括106行样本加1行列标题;以及10列。我们就看前几行即可:

  导入数据的代码如下:

data_path="G:/black_carbon_paper/97_BC20201230/00_Original/AllData5Factor.csv"
column_names=['FID','ID','X','Y','BC','Temp','Slope','RoDen','POI','GAIA']

my_data=pd.read_csv(data_path,names=column_names,header=0)

  其中,data_path.csv文件存储位置与文件名,column_names是导入的数据在Python中我希望其显示的名字(为什么原始数据本来就有列标题但还要再设置这个column_names,本文下方有介绍);header=0表示.csv文件中的0行(也就是我们一般而言的第一行)是列标题;如果大家的初始数据没有列标题,即其中的第一行就是数据自身,那么就需要设置header=None

  执行上述代码,我们将导入的数据打印,看看在Python中其长什么样子。

print(my_data)

  可以看到,导入Python后数据的第七列,原本叫做“Slope_1”,但是设置我们自己命名的column_names后,其就将原本数据的列标题改为我们自己设定的标题“Slope”了。如果我们不设置column_names,导入的数据就是这个样子:

  可以看到,我们不用column_names的话,数据导入Python后列名就是原始的“Slope_1”。

  我们继续。其实用seaborn绘制联合分布图非常简单(这就是seabornmatplotlib改进,让我们绘制复杂的图时候不需要太麻烦),仅仅只有一下两句代码:

joint_columns=['BC','Temp','Slope','RoDen','POI','GAIA']

sns.pairplot(my_data[joint_columns],kind='reg',diag_kind='kde')

  其中,第一句是定义我们想要参与绘制联合分布图的列,将需要绘图的列标题放入joint_column。可以看到,因为我的数据中,具有“ID”这种编号列,而肯定编号是不需要参与绘图的,那么我们就不将其放入joint_column即可。

  第二句就是绘图啦~kind表示联合分布图中非对角线图的类型,可选'reg''scatter''kde''hist''reg'代表在图片中加入一条拟合直线,'scatter'就是不加入这条直线,'kde'是等高线的形式,'hist'就是类似于栅格地图的形式;diag_kind表示联合分布图中对角线图的类型,可选'hist''kde''hist'代表直方图,'kde'代表直方图曲线化。

  以kinddiag_kind分别选择'reg''kde'为例,绘图结果如下:

  以kinddiag_kind分别选择'scatter''hist'为例,绘图结果如下:

  个人感觉第一幅图好看些~

  不过,由于参与绘图的变量个数比较多,因此使得图中的字体有点看不清。可以加上一句代码在sns.pairplot这句代码的上面:

sns.set(font_scale=1.2)

  其中,font_scale就是字体的大小,后面的数字越大,字体就越大。以font_scale=1.2为例,让我们看看效果:

  这样子字体就大了~

本文分享自微信公众号 - 疯狂学习GIS(gh_c5ddfeeae7b4),作者:疯狂学习GIS

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2021-05-24

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • python数据科学系列:seaborn入门详细教程

    前期,分别对python数据分析三剑客进行了逐一详细入门介绍,今天推出系列第4篇教程:seaborn。这是一个基于matplotlib进行高级封装的可视化库,相...

    luanhz
  • 数据科学篇| Seaborn库的使用(四)

    Seaborn是基于matplotlib的图形可视化python包。它提供了一种高度交互式界面,便于用户能够做出各种有吸引力的统计图表。

    润森
  • 数据探索与分析中必不可少的Seaborn库

    Seaborn是基于matplotlib的图形可视化python包。它提供了一种高度交互式界面,便于用户能够做出各种有吸引力的统计图表。

    1480
  • 用Python演绎5种常见可视化视图

    如果你想要用Python进行数据分析,就需要在项目初期开始进行探索性的数据分析,这样方便你对数据有一定的了解。其中最直观的就是采用数据可视化技术,这样,数据不仅...

    朱小五
  • 数据清洗 Chapter03 | Seaborn常用图形

    不温卜火
  • Python数据可视化的10种技能

    如果你想要用 Python 进行数据分析,就需要在项目初期开始进行探索性的数据分析,这样方便你对数据有一定的了解。其中最直观的就是采用数据可视化技术,这样,数据...

    MachineLP
  • Python Seaborn (4) 线性关系的可视化

    这章介绍的针对回归类型的散点数据的可视化可能是未来机器学习最直接的助理,这章给我的感悟很多。

    数据猿
  • 小白也能看懂的seaborn入门示例

    Seaborn就是让困难的东西更加简单。它是针对统计绘图的,一般来说,能满足数据分析90%的绘图需求。Seaborn其实是在matplotlib的基础上进行了更...

    1480
  • 可视化神器Seaborn的超全介绍

    Seaborn是一个用Python制作统计图形的库。它建立在matplotlib之上,并与panda数据结构紧密集成

    HuangWeiAI
  • Python Seaborn (3) 分布数据集的可视化

    在处理一组数据时,通常首先要做的是了解变量是如何分布的。这一章将简要介绍seborn中用于检查单变量和双变量分布的一些工具。你可能还想看看分类变量的章节,来看看...

    数据猿
  • Python实践:seaborn的散点图矩阵(Pairs Plots)可视化数据

    如何快速创建强大的可视化探索性数据分析,这对于现在的商业社会来说,变得至关重要。今天我们就来,谈一谈如何使用python来进行数据的可视化!

    用户3578099
  • Python Seaborn综合指南,成为数据可视化专家

    一个精心设计的可视化程序有一些特别之处。颜色突出,层次很好地融合在一起,整个轮廓流动,整个程序不仅有一个很好的美学质量,它也为我们提供了有意义的技术洞察力。

    磐创AI
  • Python简单高效的可视化神器——Seaborn

    前面我们已经介绍了matplotlib的一些基础和进阶的操作,相信大家已经掌握了。没有掌握的同学快回去学一学!

    zhangqibot
  • 数据可视化详解+代码演练

    磐创AI
  • Python自动化办公-玩转图表

    提起图表,你一定会想到 Excel 和 PPT 中的条形图、饼状图、柱状图,除此之外,还有很多其他种类的图表,比如折线图、热力图等等。但是,不管你通过哪一种图表...

    somenzz
  • 大数据应用导论 Chapter05 | 数据可视化

    数据可视化工具: 1、Matplotlib(Python):一个2D绘图库,可以绘制许多高质量的图形 2、Seaborn(Python):Matplot...

    不温卜火
  • Seaborn + Pandas带你玩转股市数据可视化分析

    在日常生活中,可视化技术常常是优先选择的方法。尽管在大多数技术学科(包括数据挖掘)中通常强调算法或数学方法,但是可视化技术也能在数据分析方面起到关键性作用。

    数据STUDIO
  • seaborn的介绍

    Seaborn是一个用Python制作统计图形的库。它建立在matplotlib之上,并与pandas数据结构紧密集成。

    iOSDevLog
  • Day5.五种拓展图形绘制

    昨天的课程中我们学习绘制五种常见的图形,今天的课程同样使用Matplotlib和Seaborn进行画图,包括箱线图,热力图,雷达图,二元变量分布和成对关系。

    DataScience

扫码关注云+社区

领取腾讯云代金券