数据可视化图表,你选对了吗?


戳蓝字“CSDN云计算”关注我们哦!640?wx_fmt=jpeg

Photo by Jason Coudriet on Unsplash

文 | 

来源 | 阿里巴巴中间件


程序员懂画图,一宝变三宝。


继上期「阿里程序员小技巧」中,阿里巴巴技术专家三画分享了他关于《如何画好架构图》的经验,本期,菜鸟国际物流技术部高级开发工程师邻川将分享他在数据可视化图标方面的积累。



- 正文开始 -

?


常听到一句话,“能用图描述的就不用表,能用表就不用文字”。这句话也直接的表明了:在认知上,大家对于图形的敏感度远比文字高。


但同时我们也面临着这样一些问题:


写 PPT、做 demo 时,心中有万千想法和海量数据想要去展现,但总是最后还是以文字和枯燥的图表堆叠呈现了出来,苦于怎么把这些数据展现的直观、性感、一看就懂。


这时候,在心里怎么想和手上怎么画之间,差了一座“理解图表内涵”的桥梁了。


常见的图表选择原则文章有很多,这里只做简单总结,重点是从逆向来看常见场景选用以及按照数据关系选用,最后是使用中会遇到的一些常见问题。本文将分为以下两部分:


  • 两个优秀的数据可视化案例

  • 基础图形及特点

  • 如何选用图标

  • 常见的问题

作为视觉动物的我们,不妨先来看看惊艳全球的一些数据可视化的例子(原文链接)。



两个优秀的数据可视化案例



A. 按年龄段分布的美国人口百分比:


640?wx_fmt=gif                        

这个 GIF 动画,显示了随着时间推移的人口统计数量的变化。这是如何以令人信服的方式呈现一种单一的数据的好榜样。

 

B. 最有价值的运动队


640?wx_fmt=jpeg


这是通过叠加数据来讲述深层故事的一个例子。


这个交互由 ColumnFive 设计,受福布斯“2014年最具价值的运动队50强”名单得到的启发。但是它不仅将列表可视化,用户还可以通过它看到每支队伍参赛的时间以及夺得总冠军的数量。这为各队的历史和成功提供了更全面的看法。



基础图形及特点



接下来给大家介绍下数据可视化图表的基本类型和选用原则,选用正确的数据可视化的图表。


① 柱形图(Bar Chart)


640?wx_fmt=png


优势:柱形图利用柱子的高度,能够比较清晰的反映数据的差异,一般情况下用来反映分类项目之间的比较,也可以用来反映时间趋势。


注意:柱形图的局限在于它仅适用于中小规模的数据集,当数据较多时就不易分辨。一般而言,不要超过10个。


通常来说,柱形图的横轴是时间维度,用户习惯性认为存在时间趋势。如果遇到横轴不是时间维度的情况,建议用颜色区分每根柱子。 


衍生 - 堆叠柱状图:

640?wx_fmt=png

不仅可以直观的看出每个系列的值,还能够反映出系列的总和,尤其是当需要看某一单位的综合以及各系列值的比重时,比如:1-8月伦敦和柏林房产交易笔数(万)。  

 

② 条形图(Bar Chart)

640?wx_fmt=png

优势:条形图用来反映分类项目之间的比较,适合应用于跨类别比较数据。在我们需要比较项类的大小、高低时适合使用条形图。 


③ 折线图(Line Chart)

640?wx_fmt=png

优势:折线图用来反映随时间变化的趋势。当我们需要描述事物随时间维度的变化时常常需要使用该图形。 


衍生 - 光滑折线图(Smooth line chart)

假如关注的是数据反映的整体趋势,光滑折线图最适合,尤其是当数据波动较大时,采用折线图会显得很乱。

640?wx_fmt=png

衍生 - 面积图(Area chart):

折线图下方填充阴影,构成面积图,如果有两个或以上折线图,在各自折线的下方填充不同颜色的阴影,构成堆积面积图,便于了解折线的相对占比

640?wx_fmt=png

 

④ 饼图(Pie Chart)

640?wx_fmt=png

注意:饼图是一种应该避免使用的图表,因为肉眼对面积大小不敏感。是最容易被误用的。但在具体反映某个比重的时候,配上具体数值,会有较好的效果。


在需要描述某一部分占总体的百分比时,适合使用饼图。例如:占据公司全部资金一半的两个渠道;某公司员工的男女比例等。


而需要比较数据时,尤其是比较两个以上整体的成分时,请务必使用条形图或柱形图,切勿要求看图人将扇形转换成数据在饼图间相互比较,因为人的肉眼对面积大小不敏感,会导致对数据的误读。


另外,为了使饼图发挥最大作用,在使用中一般不宜超过6个部分,如需要表达6个以上的部分,也请使用条形图,扇形边个数过多,会导致饼图分块的意义解释过于困难。不要出现下面?这种饼图。

640?wx_fmt=jpeg

 

⑤ 散点图(Scatter Chart)

640?wx_fmt=png


散点图的数据为三维数据,使用两组数据构成多个坐标点,分析坐标点的分布情况,判断两个变量之间的关联或分布趋势。


可以用颜色区分系列,也可以用散点大小定第三维度,这就衍生图出了气泡图。

 

⑥ 气泡图(Bubble chart)


640?wx_fmt=png


气泡图是散点图的一种衍生,通过每个点的面积大小来衡量第三维度,适合三维数据的对比,且需要强调第三维,超过三维就搞不定。


衍生 - 力学气泡图(Mechanical bubble chart) 


640?wx_fmt=png


⑦ 雷达图(radar chart)

640?wx_fmt=png

雷达图适用于多维数据(四维以上),且每个维度必须可以排序。数据点一般6个左右,太多的话辨别起来有困难。

 


如何选用图标



在讲完了每种图表的优势和缺点,使用禁忌外,接下来就要为大家介绍:

 

① 按应用场景选择


虽然图表种类繁多,但是基于使用场景大致可以分为以下几种情况。


640?wx_fmt=png


基于这个大致的应用场景,可以初步选出可用的可视化图,但对于细微的选择差异,在下面会进一步的阐述;对于单一的可视化图无法满足需要时,就需要考虑组合展示,这里暂且不过多谈。


② 按数据关系选择


根据可视化专家 Andrew Abela 对该数据关系分类方式的提炼,他提出将图表展示的数据关系分为四类:比较、分布、构成和联系。下面对这四种关系以及应用举例和对应的可视化解决方案做了简要的分析。


640?wx_fmt=png

 
大部分情况下,我们根据这份选择指南按图索骥就可以找到,方便又轻松,在实际应用中,也存在需要展示多种数据关系的情况,那么对应的图表类型也是每种关系对应的基本图形的综合运用。例如多个时间点上构成的比较等。

 


常见问题



最后整理了一些常见问题,供大家在实际操作中使用。

 

Q: 柱形图和条形图都可以表示分类比较,那两者在使用上有何差异呢?

A: 当所比较项目的标签文本比较长时,柱形图的横轴下的标签会出现重叠或者倾斜,且占用空间大,影响阅读者的目光移动。所以在表示分类时,如项目数量较少,使用柱形图或条形图均可,如项目_数量较多_,则建议使用_条形图_。

 

Q: 柱形图和折线图都可以表示时间序列的趋势,如何选择?

A一般来说,建议使用折线图反映趋势变化。柱形图强调各数据点值之间的差异,折线图则强调起伏变化的趋势;柱形图更适于表现离散型的时间序列,_折线图适合表现连续型的时间序列_。所以当时间序列的_数据点较少时,可以使用柱形图_,而当数据点较多时,则建议使用折线图。

 

Q: 面积图和折线图都可以表示时间序列的趋势,两者之间如何选择?

A当只展示一个度量数据的趋势时,两者完全等价,都可以使用,通常使用折线图更多。

但是,当在大型会议室展示数据时,即读图人离图表可能较远的情况,使用面积图能让后排的人看的更清楚。当比较多个度量数据的趋势时,建议使用折线图。如使用面积图,则存在数据序列之间相互遮挡的情况,除了靠近横轴的那个数据序列外,很难观察出其他数据序列的变化趋势。


Q: 是不是应该避免使用饼图,能不用就不用?

A从精确比较数据的角度来说,条形图的确更易于比较数据点之间的差异,但每种图表都有它的长处和适用场景,饼图能给我们一种整体和构成的印象,适用于表达“占比”——看到饼图就让想起100%,这个特点是条形图所没有的。


但是要尽量避免并列使用两个及以上的饼图,虽然这种用法很常见。例如如下图,分布展示两个国家在不同年份家庭花销占比,由于读图人很难通过饼图直接、准确的看出各个分类的变化趋势和幅度,需要反复在4个饼图之间比较和判断,如果变化幅度不大,很容易造成误读。所以同样是想表示占比,这种情况使用饼图就不是很有效的图表形式。


充分了解每种图表类型的特征,针对于实际的使用场景,判定其数据关系,结合场景判定图和图表类型选择指南,从而有效的传递数据信息,让你的数据更加直白,make sense!


640?wx_fmt=png

640?wx_fmt=png

福利

扫描添加小编微信,备注“姓名+公司职位”,加入【云计算学习交流群】,和志同道合的朋友们共同打卡学习!


640?wx_fmt=jpeg


推荐阅读:

  • 如何快速深入理解监控知识? | 技术干货

  • 为什么说深耕AI领域绕不开知识图谱?

  • ARM 发布新一代 CPU 和 GPU,实现 20% 性能提升!

  • 比特币冲到9000美元, 你就能找个好工作?

  • 1000 万个“AI 名师”:用机器算法“解剖”应试教育

  • 阿里面试,我挂在了第四轮……

  • 10个爬虫工程师必备的工具了解一下


640?wx_fmt=png真香,朕在看了!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/523571.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用IDEA 1分钟搭建运行SpringMVC项目

使用IDEA 1分钟搭建运行SpringMVC项目 文章目录一、项目搭建1.1. 新建项目1.2. 选择maven项目构建1.3. 设置组织名和模块名称1.4 . 选择本地maven仓库1.5 . 项目名和存放的位置1.6 . 开启自动下载依赖1.7. 搭建项目完成!!!二、项目运行2.1. 显…

ARM 发布新一代 CPU 和 GPU,实现 20% 性能提升!

戳蓝字“CSDN云计算”关注我们哦!整理 | 郭芮出品 | CSDN(ID:CSDNnews)作为全球知名的芯片设计企业,ARM 踩着一年一度即将开幕的台北电脑展(Computex 2019)热潮推出了新一代产品。据外媒 Ventur…

Git仓库初始化_企业级开发原则

Git仓库初始化_企业级开发原则 文章目录1. 在远程github创建仓库2. 在本地创建README.md测试WIKI文件3. 创建.gitignore文件4. 初始化git仓库5. 工作区变更文件添加至暂存区6. 文件提交至本地仓库7. 连接远程仓库8. 将本地仓库变更文件推送至远程9. 开发原则分支开发&#xff0…

Unix风雨五十年:老兵远去,新秀崛起

戳蓝字“CSDN云计算”关注我们哦!文 | 姜洪军Unix?这是多老的一个传说啊!年轻一代的很多人似乎都没听说过。不过,微软的Windows NT、开源的Linux、谷歌的安卓、苹果的iOS,大家不陌生吧?其实这些都带着Unix的基因,我们…

Mybatisplus代码生成 之SpringBoot适配MYSQL和ORACLE

Mybatisplus代码生成 之SpringBoot适配MYSQL和ORACLE 文章目录前期准备:看图操作,一路下一步1. 导入相关依赖2. 新建代码生成类MysqlGenerator2.1. MYSQL 代码生成部分2.2. ORACLE代码生成部分3. 创建全局配置文件4. 启动类加MapperScan注解5. 在control…

360浏览器网页走丢了_超酷!Win10 正式版全新 UI 界面,全球第二大浏览器上线...

5月10日消息,微软今年首个 Windows 10 正式版将捆绑并换上全新的 Edge 浏览器,目前微软已向预览通道用户推送了 KB4559309 独立更新补丁,该补丁更新后将自动替换旧版 Edge 浏览器。撰文|XL科技说此前微软曾确认今年首个 Windows 1…

MP 启动注入 SQL 原理分析

MP 启动注入 SQL 原理分析 文章目录一、MybatisPlus需要sql语句吗?解答:需要1.1. 问题:为什么MybatisPlus看不到sql语句?1.2. 分析:继承关系1.3. 假设:操作数据库一定有sql二、通过现象看本质2.1. 测试案例…

虚拟化精华问答 | 为什么云计算需要虚拟化?

虚拟化是一种资源管理技术, 是将计算机的各种物理资源, 如服务器、网络、内存及存储等,予以抽象、转换后呈现出来,打破物理设备结构间的不可切割的障碍,使用户可以比原本的架构更好的方式来应用这些资源。这些资源的虚拟部分是不受现有资源的…

c++ raiseexception产生异常_Day17_异常,线程

《Java自学180天笔记》异常分类package demo3;/*java.lang.Throwable:类是Java语言中所有错误或异常的超类。 Exception:编译期异常,进行编译(写代码)java程序出现的问题 RuntimeException:运行期异常,java程序运行过程中出现的问题…

05_SpringCloud整合声明式HTTP客户端-Feign

SpringCloud整合声明式HTTP客户端-Feign 文章目录一、Feign介绍1. 什么是Feign?2. Feign组件:二、基于Feign实现微服务远程调用2.1. 引入feign依赖2.2. 启动类加EnableFeignClients注解2.3. 添加属性配置(暂无)2.4. 创建一个feign接口类2.5. 修改Ribbon调…

Jonathan Bryce说:OpenStack属于全世界,并不属于一个公司,也不会属于一个国家……...

戳蓝字“CSDN云计算”关注我们哦!“openstack这个软件是属于全世界的,并不属于一个公司,也不会属于一个国家。”这是OpenStack基金会创始人兼执行总监 Jonathan Bryce在访谈中一再强调的,也是让阿晶到如今依然记忆犹新的一句话。在…

html中给div设置的属性怎么样才能拿得到_前端基础高频面试题(更新中)

页面渲染的全过程输入url后,先拿到html文件,html下载完以后会开始对它进行解析html在解析的过程中,如果文本里有外部资源链接,比如css、js和img时,会立即启用其他线程下载这些静态资源。特殊的是当遇到js文件的时候&am…

怎么去除idea中代码的波浪线(黄色警告线)

windows中安装的idea中找到Preferences然后执行以下操作: 2.mac系统下的idea:为了减少一定量的重复代码,提醒开发人员注意,但是如果有时几行代码的重复没必要扔到一个统一的地方处理,这是总是提醒,干扰视线。这里根据个人习惯&am…

打脸!IEEE突然宣布解除对华为编辑和同行评审活动的限制;AWS 发生故障,因多处光缆被挖断,历经11小时完全修复……...

关注并标星星CSDN云计算极客头条:速递、最新、绝对有料。这里有企业新动、这里有业界要闻,打起十二分精神,紧跟fashion你可以的!每周三次,打卡即read更快、更全了解泛云圈精彩newsgo go go 消失的台北电脑展&#xff0…

分布式mysql proxy_mysqlda: 基于核心业务对象切分的Proxy模式的分布式MySQL数据库中间件...

mysqlda - MySQL数据库中间件1. 概述1.1. 数据分布式切分方式分布式架构中最难解决的是数据分布式问题,大部分数据库中间件都以分库分表作为切分方式,好处是通用,但也存在以下问题:扩容过程需要以切片为单位在库间移动数据。扩容规…

企业级实战01_ActiveMQ 下载、安装、运行、实战需求

ActiveMQ 下载、安装、运行、实战需求 文章目录一、ActiveMQ简介1. 什么是ActiveMQ?2. ActiveMQ能干什么?3. ActiveMQ特点4. MOM基本功能5. MOM主要特点6. MOM的应用场景_前7. MOM的应用场景_后二、ActiveMQ下载/安装2.1 ActiveMQ下载2.2 ActiveMQ安装环…

刚出炉!AI指数报告:AI人才需求暴涨35倍,薪酬问鼎No.1

2017年~2018年,是人工智能大火的时候。你会发现,跟朋友聊天不谈人工智能,聊天的bigger都上不去。国家支持的朝阳行业,顶级高薪吸引,让甚至许多不是计算机出身的小白,都按捺不住,投身“学海”。而…

企业实战01_Linux下安装ActiveMQ并设置开机启动

文章目录一、MQ常用命令二、防火墙常用命令三、MQ安装3.1. 在root权限下操作,赋予目录权限3.2. 给运行程序赋予可执行权限3.3. 配置环境变量四、MQ添加开机启动4.1. 添加开机启动至初始化目录4.2. 添加MQ内容如下4.3. 将activemq添加至配置文件4.4. 查看服务是否添加…

SDN精华问答 | 使用SDN的一个例子

SDN火热了好一阵子,无论运营商、政府企业、投资机构,一段时间,不知道SDN、不能甩几个SDN相关的名词术语,似乎都落后于时代了。今天,就来看看关于SDN的精华问答吧。1Q:为什么会出现SDN呢? A&…

企业级实战02_SpringMVC整合ActiveMQ 实战需求

SpringMVC整合ActiveMQ 文章目录一、Spring整合ActiveMQ实战1.1. 创建一个父工程:1.2. 引入依赖1.3. 创建一个子项目生产者1.4. 创建一个spring配置文件4. 创建一个点对点的生产者监听5. 创建一个topic的生产者监听四、Spring整合ActiveMQ实战1. 创建一个消费者工程…