Py学习  »  Python

5种数据可视化方式,Python的Matplotlib快速编写简单功能!

中国统计网 • 6 年前 • 511 次点击  

数据可视化是数据科学家工作的重要组成部分。在你的项目结束时,能够以清晰、简洁和引人注目的方式展示你的最终结果非常重要,因为你的受众往往是非技术性客户,他们可以理解。本文我们将着眼于5个数据可视化,并使用Python的Matplotlib为他们编写一些快速简单的功能。

用于为给定情况选择适当的数据可视化技术的图表

一、散点图

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

散点图与颜色分组

现在我们看一下代码。我们首先用别名“plt”导入Matplotlib的pyplot。要创建一个新的情节图,我们称之为plt.subplots()。将x轴和y轴数据传递给函数,然后将这些数据传递给ax.scatter()以绘制散点图。我们还可以设置点的大小,点颜色和alpha透明度。

二、线条图

如果能清楚地看到一个变量与另一个变量差异很大,即它们具有高协方差,则最好使用线图。让我们看看下图来说明。我们可以清楚地看到,所有专业的百分比随时间变化很大。用散点图绘制这些图将会非常混乱,这使得很难真正理解并看到发生了什么。

示例线图

这是线图的代码。这与上面的分散很相似。只有一些变量的微小变化。

三、直方图

直方图对查看(或真正发现)数据点的分布很有用。查看下面我们绘制频率与IQ直方图的直方图。我们可以清楚地看到中心的集中度和中位数,也可以看到它遵循高斯分布。例如,使用条(而不是散点)可以清楚地显示出每个箱的频率之间的相对差异。使用分箱(离散化)确实有助于我们看到“更大的图像”,就像我们使用所有没有离散分箱的数据点一样,可能会在可视化中产生大量噪音,使得很难看到到底发生了什么。

直方图示例

下面显示了Matplotlib中直方图的代码。有两个参数需要注意。首先,n_bins参数控想象一下,我们想要比较数据中两个变量的分布。有人可能会认为你必须制作两个独立的直方图并将它们并排放在一起进行比较。但是,实际上有更好的方法:我们可以用不同的透明度覆盖直方图。看看下面的图。统一分布被设置为具有0.5的透明度,以便我们可以看到它的后面是什么。这允许用户直接查看同一图上的两个分布。

在叠加直方图的代码中需要设置几件事情。首先,我们设置水平范围以适应两种可变分布。根据这个范围和期望数量的箱子,我们实际上可以计算每个箱子的宽度。最后,我们在同一个图上绘制两个直方图,其中一个直观图更透明。

当你尝试对几乎没有(可能<10个)类别的分类数据进行可视化时,条形图最为有效。如果我们有太多的类别,那么图中的酒吧会非常混乱,很难理解。它们对分类数据很好,因为你可以根据条的大小(即大小)轻松查看类别之间的差异,类别也很容易分割和颜色编码。有三种不同类型的柱状图我们将要看:定期、分组和堆叠。看看下面的代码。

四、条形图

常规的条状图在下面的第一张图中。在barplot()函数中,x_data表示x轴上的代号,y_data代表y轴上的条高。错误栏是在每个可以绘制的条上居中显示标准偏差的额外行。

堆叠的条形图非常适合可视化不同变量的分类构成。在下面的堆积条形图中,我们比较了日常的服务器负载。使用彩色编码堆栈,我们可以轻松查看并了解哪台服务器每天的工作效率最高,以及每天的负载如何,并与其他服务器进行比较。此代码遵循与分组条形图相同的样式。我们循环遍历每一个组,除了这次我们在旧的栏上画新的,而不是在他们旁边绘制。

常规条形图

分组条形图

堆积条形图

五、箱型图

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

这就是箱形图出现的地方。箱形图给我们提供了上述所有信息。实线框的底部和顶部总是第一和第三四分位数(即数据的25%和75%),并且框内的带总是第二四分位数(中值)。箱须图(即末端具有条纹的虚线)从框中延伸以显示数据的范围。

箱形示例

使用Matplotlib有5个快速简单的数据可视化。将事物抽象成函数总是会让你的代码更易于阅读和使用!

End.

来源:AI全球动态



文章:数据可数化(点击查看)



今天看啥 - 高品质阅读平台
本文地址:http://www.jintiankansha.me/t/QYC86zPpwb
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/10176
 
511 次点击