数据可视化是关于数据之视觉表现形式的研究;其中,这种数据的视觉表现形式被定义为一种以某种概要形式抽提出来的信息,包括相应信息单位的各类属性和变量(简单来讲,数据可视化就是用图形的方式来表征数据的规律。)前端
散点图用来表征两个(若是多个就分面,如上图)数值型变量间的关系,每一个点的位置(即x轴和y轴坐标)映射着两个变量的值。固然对于三个数值型变量,也有三维散点图,不过用得很少。
经过观察散点图上数据点的分布状况,咱们能够推断出变量间的相关性。若是变量之间不存在相互关系,那么在散点图上就会表现为随机分布的离散的点,若是存在某种相关性,那么大部分的数据点就会相对密集并以某种趋势呈现。数据的相关关系主要分为:正相关(两个变量值同时增加)、负相关(一个变量值增长另外一个变量值降低)、不相关、线性相关、指数相关等,表如今散点图上的大体分布以下图所示。那些离点集群较远的点咱们称为离群点或者异常点。 编程
在散点图的基础上加一个维度,把各个点的面积大小映射一个新的变量,这样不只点的位置还有大小表示数据特征。 服务器
把散点图各个散点用折线链接起来就成了折线图,固然不只仅只是为了好看,当散点越多,折线就越平滑地趋近于曲线,能更加贴切地反映连续型变量的规律。 网络
把折线图进一步往坐标轴投影就成了面积图,本质其实跟折线图没区别,只是看起来更加饱满一点。 数据结构
柱状图是一种用得很普遍的图形,它表征分类型变量 vs 数值型变量的关系。若是分类型变量的每个取值还能继续分类,那么简单的柱状图就变成了复杂的柱状图,每个类别仅由一根柱变成多根柱,多根柱能够串列,也能够并列。 值得一提的是,柱状图通常须要排序:若是分类型变量是有序的,按照它自己的顺序排列便可;若是分类型变量无序,那么则根据数值型变量的大小进行排序,使柱状图的高度单调变化。 app
只不过把柱状图坐标旋转一下,竖着的变成横着的,这个可根据版面自由选择。上图示例就是串列的堆叠条形图。 echarts
本质仍是柱状图,只不过把直角坐标系映射成极坐标系。看起来比柱状图更美观。 工具
瀑布图是柱状图的一种延伸,它通常表示某个指标随时间的涨跌规律,每个柱状也不都是从0开始的,而是从前一个柱状的终点位置开始,这样既反映了每个时刻的涨跌状况,也反映了数值指标在每个时刻的值。 学习
饼图的本质还是柱状图,只不过饼图通常用来表示各个类别的比例,而不是绝对的数值,用角度来映射大小。 值得一提的是,由于一个圆饼只有360度,若是类别太多了,这个饼会被切割得很是细,不利于阅读;这种状况下老老实实地用柱状图。 大数据
本质就是饼图,只不过把实心圆换成了空心的圆环;若是清一色的饼图太过单调,能够考虑换个环形图。
马赛克图比较复杂,与柱状图相比,它的分类变量就多了几个,并且还能实现交叉映射,因此比柱状图更抽象,更细化。 马赛克图隐含着大量的数据信息。例如:(1)从船员到头等舱,存活率陡然提升;(2)大部分孩子都处在三等舱和二等舱中;(3)在头等舱中的大部分女性都存活了下来,而三等舱中仅有一半女性存活;(4)船员中女性不多,致使该组的Survived标签重叠(图底部的No和Yes)。 扩展的马赛克图添加了颜色和阴影来表示拟合模型的残差值。在本例中,蓝色阴影代表,在假定生存率与船舱等级、性别和年龄层无关的条件下,该类别下的生存率一般超过预期值。红色阴影则含义相反。必定要运行该例子的代码,这样你能够真实感觉下着色图形的效果。图形代表,在模型的独立条件下,头等舱女性存活数和男性船员死亡数超过模型预期值。若是存活数与船舱等级、性别和年龄层独立,三等舱男性的存活数比模型预期值低。
看起来跟饼图比较像,但比饼图更复杂得多。它从中心向外辐射,每辐射一层就细分一层,用来表示多个变量多层之间的比例关系。
看起来跟柱状图很像,但其实本质并不同。直方图用来表征一个数值型变量的分布,具体来讲就是把这个连续型变量划分红多个区间,而后统计各个区间的频数。直方图横轴是数值型变量自己的值,纵轴是频数。
本质与直方图相似,不过纵轴不是频数而是频率。正如折线图和面积图同样,几率密度曲线图也可自由选择要不要面积投影。这个图太学术了,通常出如今数学教材中(好比正态分布……)。
不少游戏中的人物能力极向对比就是以雷达图表示的。柱状图通常是一个分类型变量不一样类别间的比较,雷达图能够是多个数值不在同一个scale之下;更具体地说,柱状图通常是横向比较,雷达图既能够多个观测之间的纵向比较,也能够是一个观测在不一样变量间的横向比较。 值得一提的是,雷达图若是用来横向比较,需先把各个数值变量做归一化处理。
亦称盒须图,也是挺学术的一个图。它用来表征各个数值型变量的分布情况,每一条横线表明分位数,盒内部的横线表明中位数,点表明异常值。
本质与直方图同样,都是表征数值型变量的分布,每个小提琴的宽度表明它在该高度处的频率范围。
通常以颜色来映射密度或者其余数值变量,通常来讲,颜色最深的地方表示数据最集中。
是热力图的变种,它把每个矩形从新排列成日历的形状,这样能够方便地观察一段时间内每一天的数值特征。
用来可视化地理数据,这些数据通常由国家地理测绘部门提供,在一些网站上也能找到,经常使用的数据格式有shp、JSON、csv等。 地图的绘制原理是基于大量的散点,勾勒成曲线,再链接成多边形——其中每一块多代形表明一个地区,能够是国家、省、市、区县等。 地图的应用主两有种状况:一是如上图同样以颜色填充每个多边形来映射一个指标,这种状况下地图跟柱状图本质相同,可是多了多边形之间的位置关系;另外一种是在地图上叠加散点或者曲线,来表征各个点之间的地理位置。
地图是二维的,三维的就是地球图。这种图形通常是交互的,也就是说你能够用鼠标实现地球的旋转和缩放等操做。 值得一提的是,不要仅仅为了3D就使用地球图,要看数据自己的状况。若是你的数据范围原本就覆盖全球,用地球图很合适;但若是你的数据范围小,就一个国内,甚至一个省市内的,搞个地球图就太浮夸,并且整个球上只有一个很是小的区域有数据,是很不和谐的。
网络图的元素包含点和边,边分为无向边、单向边和双向边来表征点与点的链接关系,边的粗细能够映射这种关系的强弱。
arc diagram也是一种网络图,只不过它把全部的节点一字排开,以弧线来表示边。这样看起来艺术感更强,适合于节点较多的网络关系可视化。
和弦图通常用来表示双向的网络关系(好比AB两个城市相互流入流出了多少人),数据结构通常为邻接矩阵。当节点不少的时候,各类弧线交叉得就很是密密麻麻,这种状况下,要么交互,要么考虑别的图形。
hierarchical edge bundling也表示节点间的网络关系,不过它把边扭曲成曲线,这样就适合节点比较多的可视化。
矩形树图本质就是决策树的可视化,只不过排成矩形。它也是把各个变量层层细分,这一点跟sunburst图相似。当变量比较多的时候,作成交互可缩放的形式更合适。
平行坐标图的优势是能够把多个变量并形排开,把每个记录都以折线链接上。这样当数据量大的时候,其实能够很方便地观察各个变量的分布状况。
桑基图看起来跟平行坐标图有点像,但含义不同。桑基图主要的用法是表征流量在各个层级的流动关系,上一层如何向下一层分散,下一层如何由下一层汇聚。
互联网运营有一个很重要的概念就是层级转化,这个每层的转化率用漏斗图来可视化,形神俱佳。若是两层之间的宽度近似,表征该层的转化率高;若是两层之间的宽度一会儿减少了不少,表示转化率低。
仪表盘的观赏性大于实用性,实际上它的功能很简单,就是表征一个数值型变量在最小值和最大值之间的什么分位。
象柱形图其实就是柱形图,只不过把柱子换成了其它的图形。若是数据自己有比较具体、形象的含义和背景,那么用象柱形图是一种比较新颖的选择。
主题河流图好看,但很差解释,若是不是交互式的,最好不要用。它通常是把多个类别随时间的变化数据堆叠起来,表征随时间变化的趋势。
词云图便是对词汇的频数进行可视化,一个词越大它出现的次数就越多,通常与文本挖掘配合使用。 在实际的数据可视化中,每每不是孤立地用一个基本图形,把多个图形组合、邻接,能交叉对比出更多的信息。好比在柱状图上叠加折线图,在地图上叠加散点图,把多个柱状图放在一块儿对比等等。 记住数据可视化展示信息是第一位的,好看却是其次。
交互性是数据可视化与信息图的区别。
什么是交互,就是用户输入一个信号,可视化系统能给出响应,以帮助他更好地理解可视化。数据可视化的本质是以简单、直接的图形帮助读者更容易理解数据背后的规律,但许多可视化图形作得太复杂了,反而不利于解读,这个时候交互就能比较有效地解决这个问题。
R最擅长的除了统计建模就是可视化了,而ggplot2是最流行、最强大的绘图包(应该没有之一)。对于静态图,只要你有足够的创意,ggplot2基本均可以经过其系统完备的画图语法实现。而R中也有相关的包能够把ggplo2图形变成交互式,弥补了ggplot2自己不能交互的弱点。
d3.js个很强大的库,许多先进、前卫的图形在上面都有demo,它能够在较底层以较高的自由度画图并配置交互效果。可是它的学习曲线很陡,坑也较多。
echarts在江湖上被称为”百度为数很少的良心产品“,这个库跟d3相反,它离应用层更近,提供了许多示例模板,把代码copy过去改改数据就好了。因此echarts的优势是上手容易、图表漂亮、交互式效果也很好,缺点是自由度低,一旦你有个创意echarts没提供对应的模板,那就没办法了。
随着Excel的发展,它的图表也愈来愈丰富美观,很容易上手,仍然是把数据往模板里套的方式。
这两个是设计师的工具,可是出了一张可视化的图以后每每须要进一步修缮,这就是设计师的工做了。能够生成一张pdf矢量图,而后导入PS或AI中,这样对每个元素操做都很方便。
DataV很适合作大屏可视化展现,效果很炫酷,并且模板愈来愈成熟,上手难度也愈来愈低,同时价格也不贵。 DataV作的大屏展现
这种状况通常是企业级的数据可视化应用,通常是领导向客户展现介绍产品和业务时所用,因此它的难度和工做量也最高。大屏展现要求大气、炫酷、交互性强。
好比用R中的shiny快速搭建一个可视化原型,而后在公司内部搭建一个内网服务器部署上去,内部同事均可以交互使用,很方便地了解产品原型及数据规律。这种状况下没必要太花哨,可是要具体、清晰,还有要必定的交互性。
这个是放在报告中或者PPT中展现给别人看的,因此静态图表就行,这个难度最低。报告中的图表要求简洁、清晰、易于解读。