5 种使用 Python 代码轻松实现数据可视化的方法

数据可视化是数据科学家工做中的重要组成部分。在项目的早期阶段,你一般会进行探索性数据分析(Exploratory Data Analysis,EDA)以获取对数据的一些理解。建立可视化方法确实有助于使事情变得更加清晰易懂,特别是对于大型、高维数据集。在项目结束时,以清晰、简洁和引人注目的方式展示最终结果是很是重要的,由于你的受众每每是非技术型客户,只有这样他们才能够理解。html

Matplotlib 是一个流行的 Python 库,能够用来很简单地建立数据可视化方案。但每次建立新项目时,设置数据、参数、图形和排版都会变得很是繁琐和麻烦。在这篇博文中,咱们将着眼于 5 个数据可视化方法,并使用 Python Matplotlib 为他们编写一些快速简单的函数。与此同时,这里有一个很棒的图表,可用于在工做中选择正确的可视化方法!厦工叉车git

151545_9IHf_2896879

散点图

散点图很是适合展现两个变量之间的关系,由于你能够直接看到数据的原始分布。 以下面第一张图所示的,你还能够经过对组进行简单地颜色编码来查看不一样组数据的关系。想要可视化三个变量之间的关系? 没问题! 仅需使用另外一个参数(如点大小)就能够对第三个变量进行编码,以下面的第二张图所示。github

151545_9IHf_2896879

151545_9IHf_2896879

如今开始讨论代码。咱们首先用别名 “plt” 导入 Matplotlib 的 pyplot 。要建立一个新的点阵图,咱们可调用 plt.subplots() 。咱们将 x 轴和 y 轴数据传递给该函数,而后将这些数据传递给 ax.scatter() 以绘制散点图。咱们还能够设置点的大小、点颜色和 alpha 透明度。你甚至能够设置 Y 轴为对数刻度。标题和坐标轴上的标签能够专门为该图设置。这是一个易于使用的函数,可用于从头至尾建立散点图!服务器

 

折线图

当你能够看到一个变量随着另外一个变量明显变化的时候,好比说它们有一个大的协方差,那最好使用折线图。让咱们看一下下面这张图。咱们能够清晰地看到对于全部的主线随着时间都有大量的变化。使用散点绘制这些将会极其混乱,难以真正明白和看到发生了什么。折线图对于这种状况则很是好,由于它们基本上提供给咱们两个变量(百分比和时间)的协方差的快速总结。另外,咱们也能够经过彩色编码进行分组app

151545_9IHf_2896879

这里是折线图的代码。它和上面的散点图很类似,只是在一些变量上有小的变化。ide

 

直方图

直方图对于查看(或真正地探索)数据点的分布是颇有用的。查看下面咱们以频率和 IQ 作的直方图。咱们能够清楚地看到朝中间汇集,而且能看到中位数是多少。咱们也能够看到它呈正态分布。使用直方图真得能清晰地呈现出各个组的频率之间的相对差异。组的使用(离散化)真正地帮助咱们看到了“更加宏观的图形”,然而当咱们使用全部没有离散组的数据点时,将对可视化可能形成许多干扰,使得看清真正发生了什么变得困难。函数

151545_9IHf_2896879

下面是在 Matplotlib 中的直方图代码。有两个参数须要注意一下:首先,参数 n_bins 控制咱们想要在直方图中有多少个离散的组。更多的组将给咱们提供更加完善的信息,可是也许也会引进干扰,使得咱们远离全局;另外一方面,较少的组给咱们一种更多的是“鸟瞰图”和没有更多细节的全局图。其次,参数 cumulative 是一个布尔值,容许咱们选择直方图是否为累加的,基本上就是选择是 PDF(Probability Density Function,几率密度函数)仍是 CDF(Cumulative Density Function,累积密度函数)。编码

想象一下咱们想要比较数据中两个变量的分布。有人可能会想你必须制做两张直方图,而且把它们并排放在一块儿进行比较。然而,实际上有一种更好的办法:咱们可使用不一样的透明度对直方图进行叠加覆盖。看下图,均匀分布的透明度设置为 0.5 ,使得咱们能够看到他背后的图形。这样咱们就能够直接在同一张图表里看到两个分布。spa

151545_9IHf_2896879

对于重叠的直方图,须要设置一些东西。首先,咱们设置可同时容纳不一样分布的横轴范围。根据这个范围和指望的组数,咱们能够真正地计算出每一个组的宽度。最后,咱们在同一张图上绘制两个直方图,其中有一个稍微更透明一些。code

 

柱状图

当你试图将类别不多(可能小于10)的分类数据可视化的时候,柱状图是最有效的。若是咱们有太多的分类,那么这些柱状图就会很是杂乱,很难理解。柱状图对分类数据很好,由于你能够很容易地看到基于柱的类别之间的区别(好比大小);分类也很容易划分和用颜色进行编码。咱们将会看到三种不一样类型的柱状图:常规的,分组的,堆叠的。在咱们进行的过程当中,请查看图形下面的代码。

常规的柱状图以下面的图1。在 barplot() 函数中,xdata 表示 x 轴上的标记,ydata 表示 y 轴上的杆高度。偏差条是一条以每条柱为中心的额外的线,能够画出标准误差。

分组的柱状图让咱们能够比较多个分类变量。看看下面的图2。咱们比较的第一个变量是不一样组的分数是如何变化的(组是G1,G2,……等等)。咱们也在比较性别自己和颜色代码。看一下代码,y_data_list 变量其实是一个 y 元素为列表的列表,其中每一个子列表表明一个不一样的组。而后咱们对每一个组进行循环,对于每个组,咱们在 x 轴上画出每个标记;每一个组都用彩色进行编码。

堆叠柱状图能够很好地观察不一样变量的分类。在图3的堆叠柱状图中,咱们比较了天天的服务器负载。经过颜色编码后的堆栈图,咱们能够很容易地看到和理解哪些服务器天天工做最多,以及与其余服务器进行比较负载状况如何。此代码的代码与分组的条形图相同。咱们循环遍历每一组,但此次咱们把新柱放在旧柱上,而不是放在它们的旁边。

151545_9IHf_2896879

151545_9IHf_2896879151545_9IHf_2896879

 

 

箱形图

咱们以前看了直方图,它很好地可视化了变量的分布。可是若是咱们须要更多的信息呢?也许咱们想要更清晰的看到标准误差?也许中值与均值有很大不一样,咱们有不少离群值?若是有这样的偏移和许多值都集中在一边呢?

这就是箱形图所适合干的事情了。箱形图给咱们提供了上面全部的信息。实线框的底部和顶部老是第一个和第三个四分位(好比 25% 和 75% 的数据),箱体中的横线老是第二个四分位(中位数)。像胡须同样的线(虚线和结尾的条线)从这个箱体伸出,显示数据的范围。

因为每一个组/变量的框图都是分别绘制的,因此很容易设置。xdata 是一个组/变量的列表。Matplotlib 库的 boxplot() 函数为 ydata 中的每一列或每个向量绘制一个箱体。所以,xdata 中的每一个值对应于 ydata 中的一个列/向量。咱们所要设置的就是箱体的美观。

151545_9IHf_2896879

 

结语

使用 Matplotlib 有 5 个快速简单的数据可视化方法。将相关事务抽象成函数老是会使你的代码更易于阅读和使用!我但愿你喜欢这篇文章,而且学到了一些新的有用的技巧。若是你确实如此,请随时给它点赞。

相关文章
相关标签/搜索