- 点击上方“中国统计网”订阅我吧!-

通过本篇文章,你将学到:

  • 视图的分类,从哪些维度进行分类

  • 5种常见视图的概念,以及如何在Python中进行使用,都需要用到哪些函数。

注意:想要更深层次的理解,需要自己动手跑代码,体验数据可视化过程

今天我来给你讲讲Python的可视化技术。

如果你想要用Python进行数据分析,就需要在项目初期开始进行探索性的数据分析,这样方便你对数据有一定的了解。其中最直观的就是采用数据可视化技术,这样,数据不仅一目了然,而且更容易被解读。同样在数据分析得到结果之后,我们还需要用到可视化技术,把最终的结果呈现出来。

可视化视图有哪些?

按照数据之间的关系,我们可以把可视化视图划分为4类,它们分别是比较、联系、构成和分布。我来简单介绍下这四种关系的特点:

  • 比较:比较数据间各类别的关系,或者是它们随着时间的变化趋势,比如折线图。

  • 联系:查看两个或两个以上变量之间的关系,比如散点图。

  • 构成:每个部分占整体的百分比,或者是随着时间的百分比变化,比如饼图。

  • 分布:关注单个变量,或者多个变量的分布情况,比如直方图。

同样,按照变量的个数,我们可以把可视化视图划分为单变量分析和多变量分析。

  • 单变量分析指的是一次只关注一个变量。比如我们只关注“身高”这个变量,来看身高的取值分布,而暂时忽略其他变量。

  • 多变量分析可以让你在一张图上可以查看两个以上变量的关系。比如“身高”和“年龄”,你可以理解是同一个人的两个参数,这样在同一张图中可以看到每个人的“身高”和“年龄”的取值,从而分析出来这两个变量之间是否存在某种联系。

常见视图

可视化的视图可以说是分门别类,多种多样,今天我主要介绍常用的5种视图,包括了散点图、折线图、直方图、热力图、成对关系。

1.散点图

散点图的英文叫做scatter plot,它将两个变量的值显示在二维坐标中,非常适合展示两个变量之间的关系。当然,除了二维的散点图,我们还有三维的散点图。

在Matplotlib中,我们经常会用到pyplot这个工具包,它包括了很多绘图函数,类似Matlab的绘图框架。在使用前你需要进行引用:

import matplotlib.pyplot as plt

在工具包引用后,画散点图,需要使用plt.scatter(x, y, marker=None)函数。x、y 是坐标,marker代表了标记的符号。比如“x”、“>”或者“o”。选择不同的marker,呈现出来的符号样式也会不同,你可以自己试一下。

下面三张图分别对应“x”“>”和“o”。

除了Matplotlib外,你也可以使用Seaborn进行散点图的绘制。在使用Seaborn前,也需要进行包引用:

import seaborn as sns

在引用seaborn工具包之后,就可以使用seaborn工具包的函数了。如果想要做散点图,可以直接使用sns.jointplot(x, y, data=None, kind='scatter')函数。其中x、y是data中的下标。data就是我们要传入的数据,一般是DataFrame类型。kind这类我们取scatter,代表散点的意思。当然kind还可以取其他值,这个我在后面的视图中会讲到,不同的kind代表不同的视图绘制方式。

好了,让我们来模拟下,假设我们的数据是随机的1000个点。

我们运行一下这个代码,就可以看到下面的视图(第一张图为Matplotlib绘制的,第二张图为Seaborn绘制的)。其实你能看到Matplotlib和Seaborn的视图呈现还是有差别的。Matplotlib默认情况下呈现出来的是个长方形。而Seaborn呈现的是个正方形,而且不仅显示出了散点图,还给了这两个变量的分布情况。

Matplotlib绘制:

Seaborn绘制:

2.折线图

折线图可以用来表示数据随着时间变化的趋势。

在Matplotlib中,我们可以直接使用plt.plot()函数,当然需要提前把数据按照X轴的大小进行排序,要不画出来的折线图就无法按照X轴递增的顺序展示。

在Seaborn中,我们使用sns.lineplot (x, y, data=None)函数。其中x、y是data中的下标。data就是我们要传入的数据,一般是DataFrame类型。

这里我们设置了x、y的数组。x数组代表时间(年),y数组我们随便设置几个取值。下面是详细的代码。

然后我们分别用Matplotlib和Seaborn进行画图,可以得到下面的图示。你可以看出这两个图示的结果是完全一样的,只是在seaborn中标记了x和y轴的含义。

3.直方图

直方图是比较常见的视图,它是把横坐标等分成了一定数量的小区间,这个小区间也叫作“箱子”,然后在每个“箱子”内用矩形条(bars)展示该箱子的箱子数(也就是y值),这样就完成了对数据集的直方图分布的可视化。

在Matplotlib中,我们使用plt.hist(x, bins=10)函数,其中参数x是一维数组,bins代表直方图中的箱子数量,默认是10。

在Seaborn中,我们使用sns.distplot(x, bins=10, kde=True)函数。其中参数x是一维数组,bins代表直方图中的箱子数量,kde代表显示核密度估计,默认是True,我们也可以把kde设置为False,不进行显示。核密度估计是通过核函数帮我们来估计概率密度的方法。

这是一段绘制直方图的代码。

我们创建一个随机的一维数组,然后分别用Matplotlib和Seaborn进行直方图的显示,结果如下,你可以看出,没有任何差别,其中最后一张图就是kde默认为Ture时的显示情况。

4.热力图

热力图,英文叫heat map,是一种矩阵表示方法,其中矩阵中的元素值用颜色来代表,不同的颜色代表不同大小的值。通过颜色就能直观地知道某个位置上数值的大小。另外你也可以将这个位置上的颜色,与数据集中的其他位置颜色进行比较。

热力图是一种非常直观的多元变量分析方法。

我们一般使用Seaborn中的sns.heatmap(data)函数,其中data代表需要绘制的热力图数据。

这里我们使用Seaborn中自带的数据集flights,该数据集记录了1949年到1960年期间,每个月的航班乘客的数量。

通过seaborn的heatmap函数,我们可以观察到不同年份,不同月份的乘客数量变化情况,其中颜色越浅的代表乘客数量越多,如下图所示:

5.成对关系

如果想要探索数据集中的多个成对双变量的分布,可以直接采用sns.pairplot()函数。它会同时展示出DataFrame中每对变量的关系,另外在对角线上,你能看到每个变量自身作为单变量的分布情况。它可以说是探索性分析中的常用函数,可以很快帮我们理解变量对之间的关系。

pairplot函数的使用,就好像我们对DataFrame使用describe()函数一样方便,是数据探索中的常用函数。

这里我们使用Seaborn中自带的iris数据集,这个数据集也叫鸢尾花数据集。鸢尾花可以分成Setosa、Versicolour和Virginica三个品种,在这个数据集中,针对每一个品种,都有50个数据,每个数据中包括了4个属性,分别是花萼长度、花萼宽度、花瓣长度和花瓣宽度。通过这些数据,需要你来预测鸢尾花卉属于三个品种中的哪一种。

这里我们用seaborn中的pairplot函数来对数据集中的多个双变量的关系进行探索,如下图所示。从图上你能看出,一共有sepal_length、sepal_width、petal_length和petal_width4个变量,它们分别是花萼长度、花萼宽度、花瓣长度和花瓣宽度。

下面这张图相当于这4个变量两两之间的关系。比如矩阵中的第一张图代表的就是花萼长度自身的分布图,它右侧的这张图代表的是花萼长度与花萼宽度这两个变量之间的关系。

End.

作者:妄心xyx

来源:简书

本文为转载分享,如有侵权请联系后台删除

 · 零基础入职数据分析就业班 · 

抓住4月复工机会,5月即可入职理想公司!课程专享:趣味月考测试+真实项目练习+1v1职场生涯规划+班主任辅导学习+资深讲师答疑加入我们你能得到:

  • 熟练掌握SQL、Python、Excel、PPT等数据分析工具

  • 真实数据库实战项目经历

  • 1v1数据职场生涯规划

点击“阅读原文”,入职数据分析

python sns绘制回归线_【干货!】用Python演绎5种常见可视化视图相关推荐

  1. 利用python查询电脑配置_干货|利用Python将地址转换为经纬度坐标

    本文主要讲述利用Python将文本格式的地址转换为数字格式的经纬度坐标数据,主要步骤有: 注册高德地图API账号,申请Web服务的Key 了解并测试地理编码API服务 利用Python实现地址转坐标 ...

  2. python sns绘制回归线_SVM--支持向量机amp;Python代码

    (一)基础理论部分 如果对支持向量机的基础理论推导感兴趣,这里分享一个经典的视频: https://www.youtube.com/watch?v=_PwhiWxHK8o​www.youtube.co ...

  3. python sns绘制回归线_Python数分实战:员工流失情况预测

    在很久之前,我有写一个Excel数据分析的实战项目,不晓得大家还记不记得,感兴趣的童鞋可以回看: A九姑娘:Excel数分实战:员工流失率分析​zhuanlan.zhihu.com 本次的项目数据依旧 ...

  4. python蟒蛇绘制步骤_如何用python绘制蟒蛇移动的样子-百度经验

    保存好之后,我们就可以开始编辑了,蟒蛇代码如下图. 其中第一段import turtle是导入python的turtle函数.(import turtle) 第二段是定义一个drawSnake函数,d ...

  5. python录入学生信息网_干货满满 | Python趣味编程教学实践

    Python趣味编程教学实践 近几年间,Python 的火热有目共睹,在IEEE Spectrum 2020 编程语言 Top 10排行榜中,Python位居第一.这是因为Python 与人工智能.机 ...

  6. python接口自动化测试书籍_干货丨Python接口测试自动化实战及代码示例:含get、post等方法...

    引言:年初参与到一个后台系统开发的项目中,里面涉及了很多接口,我做为项目组测试人员,需要对这些接口进行测试,一开始使用 postman 工具测试,很是方便.但随着接口数量的增加,不光要执行手动点击测试 ...

  7. python安全编码问题_浅谈Python中的编码问题

    对于Python的初学者来说,编码问题相当令人头疼.本文就根据我在学习过程中遇到的问题简单谈一下Python中的编码.首先简单介绍一下几种常见的编码. 一.几种常见的字符编码 ASCII码 ASCII ...

  8. python数据科学入门_干货!小白入门Python数据科学全教程

    前言本文讲解了从零开始学习Python数据科学的全过程,涵盖各种工具和方法 你将会学习到如何使用python做基本的数据分析 你还可以了解机器学习算法的原理和使用 说明 先说一段题外话.我是一名数据工 ...

  9. python定期自动运行_干货分享 | 适合 Python 入门的 8 款强大工具,不会就你还不知道吧!...

    点击上方"人工智能Corner","星标或置顶公众号" 干货分享,第一时间送达 Python是一种开源的编程语言,可用于Web编程.数据科学.人工智能以及许多科 ...

最新文章

  1. 使用word完成毕业论文的所有详细步骤
  2. 洛谷P1073 最优贸易
  3. postgreSQL源码分析——索引的建立与使用——Hash索引(1)
  4. [leetcode] Power of Two 判断一个数是否是2的平方
  5. C#编程(六十六)----------表达式树总结
  6. HDU_1874_畅通工程续_最短路问题
  7. 长链剖分算法完整总结
  8. 现代信号处理——阵列信号处理(阵列信号的高分辨处理)
  9. CAD中图形无法复制,使用块插入来合并两个dwg图形
  10. Maven在线仓库地址
  11. go、JS AES(CBC模式)加密解密兼容
  12. 联想小新air14和联想pro14哪个好
  13. Python爬取10529条《三十而已》热评,看看大家都说了些啥
  14. Redisson time out解决
  15. Photorealistic Face de-Identification by AggregatingDonors’ Face Components论文阅读笔记
  16. 毫米波雷达 ti awr2243 天线通道校准方法
  17. 环境法19春在线作业1-0003
  18. PS圆角图片并保留透明背景
  19. IDC运维团队技术交流----金盾防火墙基本操作
  20. 【STM32】TIM定时器

热门文章

  1. 两个线程同时从服务器接收消息_Linux高性能服务器处理框架
  2. Linux 冯诺依曼体系结构
  3. 【图像特征提取1】方向梯度直方图HOG---从理论到实践------附带积分图像的解析
  4. C语言的soap报文处理转义字符,webservice传递特殊字符时的解决办法
  5. 界面放大_Beachtek推出RED摄影机低噪前置放大器DXA-RED
  6. jsfor循环终止_详解如何在JS代码中消灭for循环
  7. hadoop hive集群_失眠大数据专家,基于Hadoop不同版本搭建hive集群(附配置文件)
  8. 萝卜魂军曹机器人_【BANDAI】萝卜魂 全金属狂潮TSR RK-92 野蛮人 沙色
  9. python lxml用法详解_Python-- lxml用法
  10. abs和pc混在一起怎么解决_PC、ABS常见的7大问题及解决方案