【直播回顾】轻松入门数据可视化

2020-09-27 10:59:08 浏览数 (1)

直播回看地址

https://appqtulvsie4217.pc.xiaoe-tech.com/detail/l_5e5dd4cfd2ef3_4Ramdutd/4?fromH5=true#/


数据可视化的定义

数据可视化(DataVisualization)是关于数据之视觉表现形式的研究;其中,这种数据的视觉表现形式被定义为一种以某种概要形式抽提出来的信息,包括相应信息单位的各种属性和变量。

数据可视化主要旨在借助于图形化手段,清晰有效地传达与沟通信息。为了有效地传达思想概念,美学形式与功能需要齐头并进,通过直观地传达关键的方面与特征,从而实现对于相当稀疏而又复杂的数据集的深入洞察。

南丁格尔玫瑰图的故事

19世纪50年代,英国、法国、土耳其和俄国进行了克里米亚战争,英国的战地战士死亡率高达42%。弗罗伦斯·南丁格尔主动申请,自愿担任战地护士。她率领38名护士抵达前线,在战地医院服务。当时的野战医院卫生条件极差,各种资源极度匮乏,她竭尽全力排除各种困难,为伤员解决必须的生活用品和食品,对他们进行认真的护理。仅仅半年左右的时间伤病员的死亡率就下降到2.2%。每个夜晚,她都手执风灯巡视,伤病员们亲切地称她为“提灯女神”。战争结束后,南丁格尔回到英国,被人们推崇为民族英雄。

出于对资料统计的结果会不受人重视的忧虑,她发展出一种色彩缤纷的图表形式,让数据能够更加让人印象深刻。这种图表形式有时也被称作「南丁格尔的玫瑰」,是一种圆形的直方图。南丁格尔自己常昵称这类图为鸡冠花图, 并且用以表达军医院季节性的死亡率,对象是那些不太能理解传统统计报表的公务人员。她的方法打动了当时的高层,包括军方人士和维多利亚女王本人,于是医事改良的提案才得到支持。

数据可视化的目标

可视化的终极目标是洞悉蕴含在数据中的现象和规律,这包括多重含义:发现、决策、解释、分析、探索和学习。

可视化对数据分析至关重要。它是进行数据分析的第一个战场,可以揭示出数据内在的错综复杂的关系,在这一点上可视化的优势是其它方法无可比拟。“我们寻找意想不到的发现,我们挑战料想之中的观点。”

—威廉·克利夫兰(WilliamS. Cleveland) 《VisualizingData》作者


常用的数据可视化软件主要包括以下四种类型,其中Excel、Power BI和Tableau为商业用、无需编程的绘图软件;Origin、Sigmaplot和GraphPad为学术用、无需编程的绘图软件;R、Python和Matlab为需要编程的软件;Echarts、plotly和D3.js为实现web网页交互可视化的库。更加详细的内容可以参考前文:

图表绘制与处理的常用软件

常用的数据可视化软件主要包括以下四种类型,其中Excel、PowerBI和Tableau为商业用、无需编程的绘图软件;Origin、Sigmaplot和GraphPad为学术用、无需编程的绘图软件;R、Python和Matlab为需要编程的软件;Echarts、plotly和D3.js为实现web网页交互可视化的库。

几乎所有人都知道这款软件。MicrosoftExcel是微软公司的办公软件Microsoftoffice的组件之一,是由Microsoft为Windows和AppleMacintosh操作系统的电脑而编写和运行的一款试算表软件。Excel是微软办公套装软件的一个重要的组成部分,它可以进行各种数据的处理、统计分析和辅助决策操作,广泛地应用于管理、统计财经、金融等众多领域。Excel能实现大部分二维图表的绘制与基础的数据处理与分析,具体可以参考学习《Excel数据之美:科学图表与商业图表绘制》。本书的具体介绍请查阅前文:

《Excel 数据之美--科学图表与商业图表的绘制》上市啦

TableauSoftware致力于帮助人们查看并理解数据。Tableau帮助任何人快速分析、可视化并分享信息。超过42,000家客户通过使用Tableau在办公室或随时随地快速获得结果。数以万计的用户使用TableauPublic 在博客与网站中分享数据。

官方网站:https://www.tableau.com/zh-cn/products/desktop

PowerBI是微软官方推出的可视化数据探索和交互式报告工具,同时有PowerQuery、PowerQivot、PowerView、PowerMap四大组件,分别用于数据导入、数据模型管理、数据展现。我们可以方便的从多种数据源导入数据,使用Dax创建计算字段,创建多种样式的交互式图表,并发布共享。如果你电脑上还没有Excel2016,大家可以先下载一个PowerBI桌面版试玩,官网上就有免费下载链接:https://powerbi.microsoft.com/en-us/desktop/

Python是一种面向对象的解释型计算机程序设计语言。Python具有丰富和强大的库。它常被昵称为胶水语言,能够把用其他语言制作的各种模块(尤其是C/C )很轻松地联结在一起。Python语言也有一系列的数据可视化包(packages),包括Pandas、Matplotlib、Seaborn、ggplot、Bokeh、Pygal等(可参考http://pbpython.com/visualization-tools-1.html)

相较于其他的所有软件,R的优势之一在于它是专为数据分析而设计的。R是用于统计分析、绘图的语言和操作环境。R是属于GNU系统的一个自由、免费、源代码开放的软件,它是一个用于统计计算和统计制图的优秀工具。R语言有一系列的数据可视化包(packages),包括ggplot2、lattice、leaflet、playwith、atticist、iplots、ggvis、ggmaps,以及很流行的ggplot2包(两本关于ggplot2的经典书籍:《ggplot2Elegant Graphics for Data Analysis》和《R.Graphics.Cookbook》),

ggplot2包的官网:http://docs.ggplot2.org/current/;

ggplot2extensions拓展包的官网:http://www.ggplot2-exts.org/index.html

另外,R还提供了部分地图功能,地区数据分析(http://cran.r-project.org/web/views/Spatial.html)提供了有关地区分析的综合性R工具包列表。地理统计制图实用指南(http://spatial-analyst.net/book/download)提供了关于如何使用R及其他工具分析空间数据的可免费下载的电子书。

数据可视化主要包括六大类:类别比较、数据关系、数据分布、局部整体、时间序列和地理空间,且不同类别间可能有共同重合的图表类型。其中,数据关系型图表包括变量间相关、变化、连接、层次等不同关系的图表。但是该手册并没有包囊括所有的图表类型,还可能存在许多新型的数据可视化方法。

虽然本图表集可以指导读者选择图表类型,但是你的想象力更帮助你确定更有效的数据可视化方法。具体可以参考文章:

国内首款-数据可视化参考手册:专业绘图必备

国外专家Nathan Yau总结了在数据可视化的过程中,一般要经历的四个过程,如下图所示(我做了适当的修改)。不论是商业图表还是科学图表,要想得到完美的图表,在这四个过程中都要反复进行思索。

1.你拥有什么样的数据?(Whatdata do you have?)

2. 你想表达什么样的数据信息?(What do you want to knowabout your data?)

3. 你会什么样的数据可视化方法?(What visualizationmethods should you use?)

4.你从图表中能获得什么样的数据信息?(What do you see and doesit makes sense?)

类别比较型

类别比较型图表的数据一般包含数值型和类别型两种数据类型(见图1-8-2),比如在柱形图中,X轴为类别型数据,Y轴为数值型数据,采用位置 长度两种视觉元素。类别型数据主要包括柱形图、条形图、雷达图、坡度图、词云图等,通常用来比较数据的规模。有可能是比较相对规模(显示出哪一个比较大),有可能是比较绝对规模(需要显示出精确的差异)。柱形图是用来比较规模的标准图表(注意:柱形图轴线的起始值必须为0)。

数据关系型

数据关系型图表分为数值关系型、层次关系型和网络关系型三种图表类型。

数值关系型图表主要展示两个或多个变量之间的关系,包括最常见的散点图、气泡图、曲面图、矩阵散点图等。该图表的变量一般都为数值型,当变量为1~3个时,可以采用散点图、气泡图、曲面图等;当变量多于3个时,可以采用高维数据可视化方法,如平行坐标系、矩阵散点图、径向坐标图、星形图和切尔若夫脸谱图等。

层次关系型数据着重表达数据个体之间的层次关系,主要包括包含和从属两种关系,比如公司不同部门的组织结构,不同洲的国家包含关系等,包括节点链接图、树形图、冰柱图、旭日图、圆填充图、矩形树状图等。

网络关系型图表是指那些不具备层次结构的关系数据的可视化。与层次关系型数据不同,网络关系型数据并不具备自底向上或者自顶向下的层次结构,表达的数据关系更加自由和复杂,其可视化的方法常包括:桑基图、和弦图、节点链接图、弧长链接图、蜂箱图等。

数据分布型

数据分布型图表主要显示数据集中的数值及其出现的频率或者分布规律,包括统计直方图、核密度曲线图、箱形图、小提琴图等。其中,统计直方图最为简单与常见,又称质量分布图,由一系列高度不等的纵向条纹或线段表示数据分布的情况。 一般用横轴表示数据类型,纵轴表示分布情况。

时间序列型

时间序列型图表强调数据随时间的变化规律或者趋势,X轴一般为时序数据,Y轴为数值型数据,包括折线图、面积图、雷达图、日历图、柱形图等。其中,折线图是用来显示时间序列变化趋势的标准方式,非常适用于显示在相等时间间隔下数据的趋势。

局部整体型

局部整体型图表能显示出局部组成成分与整体的占比信息,主要包括饼图、圆环图、旭日图、华夫饼图、矩形树状图等。饼图是用来呈现部分和整体关系的常见方式,在饼图中,每个扇区的弧长(以及圆心角和面积)大小为其所表示的数量的比例。但要注意的是,这类图很难去精确比较不同组成的大小。

地理空间型

地理空间型图表主要展示数据中的精确位置和地理分布规律,包括等值区间地图、带气泡的地图、带散点的地图等。地图用地理坐标系可以映射位置数据。位置数据的形式有许多种,包括经度、纬度、邮编等,但通常都是用纬度和经度来描述的。

《地图管理条例》第十五条规定:“国家实行地图审核制度。向社会公开的地图,应当报送有审核权的测绘地理信息行政主管部门审核。但是,景区图、街区图、地铁线路图等内容简单的地图除外。”

R语言数据可视化方法

如需绘制这些不同类型的图表,我们主要使用R ggplot2及其拓展包extension,比如ggrepel、ggally、ggalluvial等包;也还会使用lattice、plot3D等其他包。因为ggplot2包暂时不擅长三维图表的绘制,我们需要使用lattice包的wireframe()和cloud()等函数,plot3D包的persp3D()、hist3D()、scatter3D()、lines3D(), text3D()、surf3D()、polygon3D()等函数,绘制三维柱形图、散点图和曲面图等。

R中ggplot2包的geom_path()和geom_polygon()等函数,结合地理空间坐标系可以使用DataFrame格式的数据,绘制不同投影下的世界与国家地图。Baidumap包可以使用getBaiduMap()函数下载百度局部地图,然后使用ggmap包的ggmap()函数显示;也可以直接使用ggmap包的get_map()函数下载Google局部地图等。另外,tmap包使用SpatialPointsDataFrame和SpatialPointsDataFrame格式的地理数据信息,可以绘制不同的地图。其优势在于可以绘制二维插值地图。

如需联系EasyShu团队

请加微信:EasyCharts

微信公众号【EasyShu】博文代码集合地址

https://github.com/Easy-Shu/EasyShu-WeChat

数据可视化之美系列教程

《Python数据可视化之美》即将在本月出版,敬请期待。

0 人点赞