数据可视化是数据科学家工作的重要组成部分。在项目的早期阶段,您通常会进行探索性数据分析(EDA)以获得对数据的一些见解。创建可视化确实有助于使事情更清晰、更容易理解,尤其是对于更大、更高维度的数据集。在项目即将结束时,能够以清晰、简洁和引人注目的方式呈现您的最终结果非常重要,以便您的受众(通常是非技术客户)能够理解。

Matplotlib是一个流行的Python库,可用于轻松创建数据可视化。但是,每次执行新项目时,设置数据、参数、数字和绘图都会变得相当混乱和乏味。在这篇博文中,我们将看看6个数据可视化,并使用Python的Matplotlib为它们编写一些快速简便的函数。与此同时,这是一个很好的图表,可以为工作选择正确的可视化!

散点图

散点图非常适合显示两个变量之间的关系,因为您可以直接查看数据的原始分布。您还可以通过对组进行颜色编码来简单地查看不同数据组的这种关系,如下图所示。想要想象三个变量之间的关系?没问题!只需使用另一个参数(如点大小)来编码第三个变量,我们可以在下面的第二个图中看到。

现在来看代码。我们首先使用别名"plt”导入Matplotlib的pyplot。为了创建一个新的情节图,我们调用plt.subplots()。将x轴和y轴数据传递给函数,然后将它们传递给ax.scatter()以绘制散点图。我们还可以设置磅值、点颜色和Alpha透明度。您甚至可以将y轴设置为对数刻度。然后专门为图形设置标题和轴标签。这很容易使用一个端到端创建散点图的函数!

线形图

当您可以清楚地看到一个变量与另一个变量差异很大,即它们具有高协方差时,最好使用线图。我们来看看下图来说明,可以清楚地看到,所有专业的百分比随时间变化很大。使用散点图绘制这些图形会非常混乱,这使得我们很难真正理解并看到发生了什么。线图非常适合这种情况,因为它们基本上可以快速总结两个变量的协方差(百分比和时间)。同样,我们也可以通过颜色编码进行分组。

这是线形图的代码。它与上面的散点非常相似。只有一些变量的微小变化。

直方图

直方图可用于查看(或实际发现)数据点的分布。查看下面的直方图,我们绘制频率与IQ直方图。我们可以清楚地看到中心的浓度和中位数。我们还可以看到它遵循高斯分布。使用条(而不是散点)确实可以清楚地看到每个箱的频率之间的相对差异。使用分档(离散化)确实有助于我们看到"更大的图像”,而如果我们使用所有数据点而没有离散分档,可视化中可能会有很多噪声,这使得很难看到真正发生了什么。

Matplotlib中直方图的代码如下所示。有两个参数需要注意。首先,n_bins参数控制我们的直方图所需的离散区数。更多的bins会给我们更好的信息,但也可能会引入噪音;另一方面,较少的bins给我们提供了更多的"鸟瞰图”,并且没有更精细的细节,更能了解正在发生的事情。其次,累积参数是一个布尔值,它允许我们选择我们的直方图是否累积。这基本上是选择概率密度函数(PDF)或累积密度函数(CDF)。

想象一下,我们想要比较数据中两个变量的分布。有人可能会认为你必须制作两个单独的直方图并将它们并排放置以进行比较。但是,实际上有更好的方法:我们可以用不同的透明度覆盖直方图。看看下图,统一分布设置为透明度为0.5,以便我们可以看到它背后的内容。这允许用户直接在同一图上查看两个分布。

在代码中为叠加的直方图设置了一些东西。首先,我们设置水平范围以适应两个变量分布。根据这个范围和所需的箱数,我们实际上可以计算每个箱的宽度。最后,我们在同一个图上绘制两个直方图,其中一个直方图略微透明。

条形图

当您尝试可视化具有少量(可能<10个)类别的分类数据时,条形图最有效。如果我们的类别太多,那么图中的条形图将非常混乱并且难以理解。它们适用于分类数据,因为您可以根据条形图的大小(即幅度)轻松查看类别之间的差异;类别也很容易划分颜色编码。我们将看到3种不同类型的条形图:常规、分组和堆叠。随着我们的进展,请查看下图中的代码。

常规的条形图在下面的第一个图中。在barplot()函数中,x_data表示x轴上的代码,y_data表示y轴上的条形高度。误差条是以每个条形为中心的额外线条,可以绘制以显示标准偏差。

分组条形图允许我们比较多个分类变量。看看下面的第二个条形图。我们比较的第一个变量是分数如何按组(G1,G2,......等组)变化。我们还将性别本身与颜色代码进行比较。看一下代码,y_data_list变量现在实际上是一个列表,其中每个子列表代表一个不同的组。然后我们遍历每个组,对于每个组,我们在x轴上绘制每个刻度线的条形图;每组也有颜色编码。

堆积条形图非常适合可视化不同变量的分类构成。在下面的堆积条形图中,我们将比较日常的服务器负载。通过颜色编码堆栈,我们可以轻松查看和了解哪些服务器每天工作最多,以及负载如何与所有日期的其他服务器进行比较。此代码遵循与分组条形图相同的样式。我们遍历每个组,除了这次我们在旧组之上而不是在它们旁边绘制新条。

直方图

我们之前查看过直方图,这些直方图非常适合可视化变量的分布。但是如果我们需要更多信息呢?也许我们想要更清晰地看待标准偏差?也许中位数与均值有很大不同,因此我们有很多异常值?如果存在这样的偏差并且许多值集中在一边怎么办?

这就是箱形图出现的原因。箱形图给出了上述所有信息。实线框的底部和顶部始终是第一和第三四分位数(即数据的25%和75%),框内的频带始终是第二个四分位数(中位数)。晶须(即带有条形末端的虚线)从盒子中伸出,以显示数据的范围。

由于为每个组/变量绘制了框图,因此很容易设置。x_data是组/变量的列表。Matplotlib函数boxplot()为y_data的每一列或序列y_data中的每个向量创建一个盒子图;因此,x_data中的每个值对应于y_data中的列/向量。我们所要设定的只是情节的美学。

结论

使用Matplotlib可以实现5种快速简便的数据可视化。将事物抽象为函数总是使代码更易于阅读和使用!我希望你喜欢这篇文章并学到一些新的和有用的东西。

python简单代码-用Python代码实现5种最好的、简单的数据可视化!相关推荐

  1. python掷骰子实验报告_python-模拟掷骰子,两个筛子数据可视化

    """ 作者:zxj 功能:模拟掷骰子,两个筛子数据可视化 版本:3.0 日期:19/3/24 """ import random impo ...

  2. 笔记代码 | 统计学——基于R(第四版) 第二章数据可视化

    可视化前三步走:数据类型,分析目的,实现工具 2.1 类别数据可视化 显示各类别的绝对频数及百分比等 条形图.饼图等 2.1.1 条形图及其变种 垂直条形图:类别在x轴 水平条形图:类别在y轴 简单条 ...

  3. python画3d圆形图_Python之Numpy:二元函数绘制/三维数据可视化/3D

    意义 在机器学习任务中选择计算模型或者学习数学时,可视化有助于研究函数值的变化趋势(观察收敛.分布.几何形状等),带来直观的感受. 源码 # 绘制二元函数 # 参考文献 # + python画二元函数 ...

  4. Python数据可视化1.5 可视化图像

    1.5 可视化图像 我们实现可视化是想证实我们对数据的认识.然而,如果数据不容易理解,你可能不会设计出正确的问题. 创建可视化的第一步是弄清楚需要回答的问题.换言之,该可视化的作用如何?另一个挑战是学 ...

  5. Python数据分析入门(一)——初探数据可视化

    前言 静下心算算,当程序员已经有好几年了,不过自大学时代开始,学习对我来说就是个被动接受的过程,学校的课程.当时热门的移动端开发.数据库的学习.web学习.PHP后端学习--需要做什么我便去学什么,到 ...

  6. 21张让你代码能力突飞猛进的速查表(神经网络、线性代数、可视化等)

    随着深度学习的蓬勃发展,越来越多的小伙伴们开始使用python作为主打代码,python有着种类繁多的第三方库,这里为大家从网络上收集了一些代码速查表,包括深度神经网络.机器学习.数据可视化.pyth ...

  7. python资料书-《Python数据分析与应用》——图书配套资料下载

    1. 图书简介 本书以任务为导向,结合大量数据分析工程案例及教学经验,以Python数据分析常用技术和真实案例相结合的方式,深入浅出地介绍使用Python进行数据分析及应用的重要内容.每一章都由任务描 ...

  8. 【Python实现数据可视化】创建3D柱状图

    虽然matplotlib主要专注于绘图,并且主要是二维的图形,但是它也有一些不同的扩展,能让我们在地理图上绘图,让我们把Excel和3D图表结合起来.在matplotlib的世界里,这些扩展叫做工具包 ...

  9. Python之数据分析(Numpy通用属性、数据可视化与matplotlib库通用函数)

    文章目录 一.ndarray属性 二.数据可视化 一.ndarray属性 1.通用属性 dtype:数组类型 shape:数组维度 T:转置视图 ndim:维数(一维是1,二维是2,三维是3--) s ...

  10. python内容推荐理由_好书推荐~第5期 | Python 数据可视化

    今天为大家推荐python 数据可视化学习相关的书籍.本书单是笔者经过个人阅读或多个网站书籍对比(当当/亚马逊/豆瓣等)后推荐的书籍. 1.<Python数据可视化之matplotlib实践&g ...

最新文章

  1. pandas使用select_dtypes函数移除dataframe中指定数据类型的数据列(exclude columns based on the data type in dataframe)
  2. python手机版iphone-Python编程狮下载
  3. 对物联网操作系统特征和定位的思考
  4. 2022年全球及中国商业净水器行业十四五运营方向与盈利前景分析报告
  5. DOS命令大全(转)
  6. whiel oracle,Oracle中的for和while循环
  7. 设置分区的三种方法coalesce、repartition、partitionBy
  8. 判断js中数据类型 的最短代码
  9. 【高级】分表和分区的区别、分库分表介绍与区别
  10. 新浪微博开放平台链接耗尽的情况分析
  11. 多元统计分析最短距离法_多元统计分析(11个常见的多变量分析方法)
  12. Arm mini China新公司传预定四月分割Arm中国业务
  13. 手机平板如何查看IDEA中运行的Tomcat的web项目
  14. 汉印科技大会:凝聚匠心 成就卓越民族打印机品牌
  15. 常用国内镜像源地址汇总
  16. HTML+CSS学习打卡第一周
  17. vsftpd基本使用
  18. openwrt广告屏蔽大师修复补丁luci-app-adbyby plus + lite
  19. 通行宝通过注册:年营收5.9亿拟募资5.6亿 腾讯云与上汽是股东
  20. CentOS 7.6的64位安装JAVA JDK

热门文章

  1. 剑指offer面试题52. 两个链表的第一个公共节点(双指针法)
  2. SQLServer中一个多用户自动生成编号的过程
  3. debian、ubuntu安装metasploit通用方法
  4. Tosca 一不小心,我把那一排模块全关闭了,怎么打开
  5. Flask 发布 1.0 稳定版
  6. Django signal
  7. python logging 工具
  8. LeetCode-Minimum Path Sum[dp]
  9. 大白书中无向图的点双联通分量(BCC)模板的分析与理解
  10. Android开发技术周报 Issue#69