数据可视化是数据科学家工作的重要组成部分。在项目的早期阶段,您通常会进行探索性数据分析(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实现钉钉和邮件的数据推送,在数据处理这一块实现了对mysql和odps的数据获取和处理,可以满足常规业务大部分数据场景需求,在一家初创公司数据基础建设还不完善的时候 ...

  2. python爬取股票信息_利用Python爬取网易上证所有股票数据(代码

    利用Python爬取网易上证所有股票数据(代码 发布时间:2018-04-14 17:30, 浏览次数:1261 , 标签: Python import urllib.request import r ...

  3. python数据存储和查询代码_【Python分享】如何便捷地存储、查询数据

    前言在之前的文章(如下)中,分享了爬取天天基金.中债指数的代码.爬取的数据很多,如何方便地存储.查询,也是一个麻烦的问题.本文分享一下我实现的基于 lsm-db 的本地文件数据存储.查询模块. 分享天 ...

  4. knn算法python代码_在python中使用KNN算法处理缺失的数据

    处理缺失的数据并不是一件容易的事. 方法的范围从简单的均值插补和观察值的完全删除到像MICE这样的更高级的技术. 解决问题的挑战性是选择使用哪种方法. 今天,我们将探索一种简单但高效的填补缺失数据的方 ...

  5. python灰色模型代码_几行代码搞定ML模型,低代码机器学习Python库正式开源

    机器之心报道 机器之心编辑部 PyCaret 库支持在「低代码」环境中训练和部署有监督以及无监督的机器学习模型,提升机器学习实验的效率. 想提高机器学习实验的效率,把更多精力放在解决业务问题而不是写代 ...

  6. python低代码_几行代码搞定ML模型,低代码机器学习Python库正式开源

    PyCaret 库支持在「低代码」环境中训练和部署有监督以及无监督的机器学习模型,提升机器学习实验的效率. 想提高机器学习实验的效率,把更多精力放在解决业务问题而不是写代码上?低代码平台或许是个不错的 ...

  7. python数据可视化创建_【Python数据可视化】创建3D可视化图表

    创建3D柱状图 import random import numpy as np import matplotlib as mpl import matplotlib.pyplot as plt mp ...

  8. python二手交易平台代码_使用Python探索二手车市场(含代码)

    原标题:使用Python探索二手车市场(含代码) 前言 上一期中,我们已经手把手的分享了如何使用Python实现某二手车平台数据的抓取,并成功的完成11,281条二手车数据的搜集.基于此,我们需要对获 ...

  9. python 运行程序代码_一些python程序

    <从问题到程序:用Python学编程和计算>--1.2 Python语言简介 本节书摘来自华章计算机<从问题到程序:用Python学编程和计算>一书中的第1章,第1.2节,作者 ...

最新文章

  1. drupal7 php版本,让Drupal7识别您的模块
  2. 北京招聘 | 美团视觉智能中心招聘视觉算法实习生
  3. plsql打开sql窗口快捷键_巧用Navicat for MySQL的快捷键
  4. csgo卡住关不掉_csgo退出卡住了 | 手游网游页游攻略大全
  5. mysql中数据库基础操作
  6. hadoop在windows上的环境配置及HDFS API编程示范
  7. VS C# string 字符包含判断
  8. FTP服务器vsftpd配置详解
  9. Linux fstab文件详解
  10. 裸眼 3D 技术是什么原理?
  11. lsf服务器窗口显示,LSF指定进程提交到指定QUEUES中
  12. Win10中Ubuntu优化配置
  13. iOS 内购最新讲解
  14. java 设计模式 常用21种
  15. 小程序picker-view的使用
  16. 嵌入式学习——周总结
  17. html的confirm弹窗样式修改,模拟自定义alert与confirm样式
  18. 作业:会员制营销| Email营销(山姆公司培训方案)
  19. 使用RPM打包QT程序
  20. 希望Revit2014或更高版提供什么API?(调查于2012年6月1日截止)

热门文章

  1. DAGA: Data Augmentation with a Generation Approach for Low-resource Tagging Tasks 论文解读
  2. 伯恩斯新情绪疗法--反驳消极想法
  3. NEXUS 6P刷机安装Edxposed
  4. 用C语言怎么实现复制自己
  5. OSPF与RIP协议相互导入
  6. linux命令hwclock,Linux命令之hwclock - 查询和设置硬件时钟
  7. IEEE 802.1 Qav 协议的详细总结(时间敏感流的转发和排队增强)
  8. 电源电路设计:详解线性电源和开关电源
  9. 颠覆了我的世界观...就软件测试能干到多少岁?
  10. 华为EMUI8/9刷机直通车:一篇文章拿下安卓13