0x00 可视化图表选择
两类不同的可视化目的及其可选择的图表形式。
「对比型数据」:对比两组或两组以上数据的差异。
「分布型数据」:研究数据分布的集中趋势、离散程度、偏态和峰度等。
0x01 对比型数据可视化
对比多组数据之间的差异,而这些差异通常是通过不同的标记和视觉通道体现出来。
高度差异/宽度差异:柱状图、条形图。
面积差异:面积图、气泡图。
字号差异:单词云图。
形状差异:星状图。
1.1.柱状图
柱状图除了可以用于离散时间数据的可视化,更多的是用于比较不同分类数据的可视化,且柱状图的数据条数,最好不要超过12条。
细化柱状图的图表选择:
单一柱状图:适合单一类别的数据比对,也适合表示离散型时序数据的趋势。
重叠型柱状图:适合两个类别的数据对比,半透明柱形条,代表某项指标的「目标值」,内部偏窄且不透明的柱形条表示某项指标的「实际完成情况」。通常会搭配折线图使用,折线图则表示目标完成率。
并列柱状图:适合两个或三个数据类别的对比,若数据类别超出3个,不建议使用并列柱状图。
堆叠柱状图:适合既要对比总体的数据,又要对比总体各构成项的数据,但是总体各构成项一般不要大于5个,若大于5个,可按占总体的比例进行归类,展示TOP5的分类,剩下则归为「其他」。
1.2.条形图
条形图,可以视为是柱状图的一种变体。
相比柱状图而言,条形图可以展示更多的数据条数,一般不要超过30条;
若分类项的文本过长时,柱状图的文本需要进行旋转才能不重叠,不利于阅读,而条形图就没有这个缺点。
1.3.面积图
面积图,是折线图的一种延伸,其实就是折线图和折线图投影到X轴的直线所围成的面积。
按照对比方式的不同,面积图可以分为:「重叠对比型面积图」和「堆砌对比型面积图」。
区别:
重叠对比型:所有系列的面积基线都是X轴,系列之间有重叠和覆盖的关系。
堆砌对比型:只有底层系列的面积基线和X轴重合,其他系列都是堆砌在它们下面一组的数据上面。
面积图,一般也是用于趋势分析中。
1.4.气泡图
气泡图,和散点图的区别是,气泡图一般是用于三维数据的可视化,而散点图是用于二维数据的可视化。
散点图中,圆点的面积是相同的,主要是通过圆点在坐标轴中的坐标点(X,Y)确定的位置,来映射数据。
气泡图,是通过气泡的面积大小来对比数据的图形方式,它除了可以反映散点图中坐标点X、Y的相关关系,还有一个维度的数据可以映射到气泡的面积大小上,因此「气泡图」可以在二维平面展示三维信息的数据。
1.5.单词云图
单词云图,主要是用于网络文本中词频数据的可视化。
通过单词云图,用户可以快速找出网站搜索的高频词汇、了解文章的主旨、热点事件的关键信息。但单次云图只适合表示一组文本数据的对比,不适合多个类别的文本数据之间的比较。
1.6.雷达图/星状图
当需要对比一个主体、或多个主体本身,在不同维度上的特征时,雷达图和星状图是不错的选择。
雷达图是一体多维的数据,即可视化的对象是一个主体,只是这个主体具有多个维度上的数据特征。对比的是,同一个主体,在不同维度上的数值,可以看出主体在不同维度上的偏向。
星状图是多体多维的数据,即可视化的对象是多个主体,且多个主体维度相同,且单个主体具有多个维度上的数据特征。对比的是,多个主体,在同一维度上的数值,可以看出不同主体之间的差异和侧重点。
一般情况下,会给予不同维度上的数值一定的权重,从而算出各个主体的综合得分,我们的芝麻信用分就是这么来的。
0x02 分布型数据可视化
2.1 直方图
常用的直方图,主要有「频数直方图」和「频率直方图」,它们都是用于展示离散型分组数据的分布情况。
绘制直方图:
首先,要对数据进行分组,然后统计每个分组内数据元的频数和频率。
其次,在平面直角坐标系中,横轴标出每个组数据的下限和上限,即上图中的a和b。
最后,纵轴表示频数或频率,每个矩形的高代表对应的频数或频率,即上图中的h。
若纵轴表示的是「频数」,则是「频数直方图」;若纵轴展示的是「频率」,则为「频率直方图」。
「频数分布直方图」中,频数乘以组距得出每个分组的数量,可以看出频数分布直方图是用面积来表示频数的,和柱状图(条形图)是用长方形的高度(宽度)表示数量是有本质性区别。
2.2 茎叶图
茎叶图适合数据为整数的数据的可视化。
茎叶图的原理是,将一组数据按照数据位数进行比较,将数据中的高位数作为树茎,低位数作为树叶。
2.3.箱线图
在描述性统计中,有涉及到分位数相关的知识,其中比较常用的是四分位数,即一组数据中的下四分位数Q1、中位数、上四分位数Q3,关于分位数的概念不清楚的同学可以自行查阅相关资料。一组数据中的四分位数,加上这组数据的最大值、最小值,这5个特征值,就可以绘制一个箱线图。
箱线图释义:
箱子的中间一条线,是数据的中位数,代表了样本数据的平均水平。
箱子的上下限,分别是数据的上四分位数Q3和下四分位数Q1,这代表箱体部分包含了数据集中50%的数据,因此,箱子的宽度(四分位距=Q3-Q1)在一定程度上反映了数据的离散程度。
在箱子的上方和下方,又各有一条线,有时候代表着最大最小值,有时候代表的是上下内限。如果有点位于内限之外,理解成“异常值”就好。
箱线图常用的场景有如下几类:
(1)对比多组数据的分布情况。
(2)检测数据中的异常值或离群点。
2.4.概率密度图
要描述连续型随机变量其分布规律,概率密度图是一种很直观表现形式。
在数学中,连续型随机变量的概率密度函数是一个描述这个随机变量的输出值,在某个确定的取值点附近的可能性的函数,简单理解就是,连续型随机变量取值某个确定数值的概率,即为纵切直线与概率密度函数交点的纵坐标的值。而随机变量的取值落在某个区域之内的概率则为概率密度函数在这个区域上的积分,也就是区间的上下限与概率密度曲线围成的面积。
通过图形化的方式,与正态分布对比,我们可以看到随机变量分布的对称性情况,以及随机变量取值是集中还是分散,这些可以通过偏态系数和峰度系数来度量。
2.5 散点图/气泡图
参照上述气泡图描述部分。
需要注意区别:
散点图,一般是用于研究两个变量之间的相关关系,可以是一个类别数据,也可以是多类别数据,但是都是二维的数组(x,y)。
气泡图,除了具体散点图的功能以外,还可以用气泡的面积来映射第三个维度的数据,对应的数据形式是(x,y,z),同样可以用于多组或多类别数据的比较。
2.6 热力图
热力图,是通过密度函数进行可视化,用于表示地图中点的密度的热图。现阶段,热力图在地图、网页分析、业务数据分析等其他领域也有较为广泛的应用。
热力地图:比如我们日常使用的导航APP,通过热力图来表示各个路况的拥挤程度,颜色越深表示人员越多,对应路段也就越拥挤,有了热力图可以很直观的看到区域内的人群流量,方便驾车人士进行路线规划。
网页热力分析:常见的网页热力图,有按鼠标点击位置的热力图、按鼠标移动轨迹的热力图、按内容点击的热力图。还有一种是获取用户眼球在屏幕上的移动轨迹热力图,不过这种因为涉及到用户隐私,获取数据的难度很大。通过网页热力分析,可以直观清楚地看到页面上每一个区域的访客兴趣焦点,从而为营销推广、用户体验优化提供依据。
业务数据分析:带有地理信息属性的数据、或者离散时间属性的数据,也可以使用热力图来进行数据展示。
2.7 地图
当数据带有地理型信息属性时,首选的可视化图表为地图。按照展示的数据空间划分,地图可以分为二维平面地图和三维立体地图。
比如我们常用的导航软件、天气预报、降水量、台风移动路线等都和地理信息相挂钩,这些数据一般也是在地图上进行呈现,给人以直观的视觉体验。
0x03 小结
无论是要对比数据,还是研究数据的分布情况,都需要根据数据的类型、数据的特征来确定可视化的最佳方式。
0x04 数据的集中趋势
4.1.众数
众数(mode),是一组数据中出现频次最多的数值,众数可以不存在或多于一个。
4.2.中位数
中位数(median),是按顺序排列的一组数据中居于中间位置的数。
若n为奇数,取正中间的数作为中位数,
若n为偶数,则取中间的两个数值的算数平均数作为中位数。
4.3.分位数
分位数(quantile),亦称分位点,是指将一个随机变量的概率分布范围分为几个等份的数值点。
简单理解:把给定的乱序数值由小到大排列并分成N等份,处于N-1个分割点位置的数值就是N分位数。常见的分位数有,二分位数(即中位数)、四分位数、百分位数等。
(1)二分位数
二分位数即中位数。
对于有限数集,按照顺序排列之后,如果数据的个数是奇数,则位于正中间的那个数据就是这组数据的中位数;如果数据的个数是偶数,则位于最中间的那2个数据的算术平均值就是这组数据的中位数。
(2)四分位数
四分位数是分位数的一种,即把所有数值由小到大排列并分成四等份,处于三个分割点位置的数值就是四分位数。
第一四分位数(Q1),又称“较小四分位数”或“上四分位数”,等于该样本中所有数值由小到大排列后,位置位于第¼的数字;
第二四分位数(Q2),又称“中位数”,等于该样本中所有数值由小到大排列后,位于第½的数字;
第三四分位数(Q3),等于该样本中所有数值由小到大排列后,位置位于第¾的数字。
四分位距(interquartile range):是指第三四分位数(Q3)与第一四分位数(Q1)的差距,IQR = Q3 − Q1。
(3)百分位数
百分位数,如果将一组数据从小到大排序,并计算相应的累计百分位,则某一百分位所对应数据的值就称为这一百分位的百分位数。
4.4.平均数
平均数(mean),也称均值,是指一组数据中的所有数据之和,除以这组数据的个数,是衡量数据集中趋势的一种方法。
(1)算数平均数
算术平均数(arithmetic mean),是指在一组数据中所有数据之和再除以数据的个数。
优缺点:算术平均数的优点,就是它较中位数、众数更少受到随机因素影响, 缺点是它更容易受到极端值影响。
(2)加权平均数
加权平均数(weighted average),是不同比重数据的平均数,加权平均数就是把原始数据按照合理的比例来计算,若 n个数中,x出现f次,x出现f次,…,x出现f次,那么叫做x、x、…、x的加权平均数。f1、f2、…、fk是X1、X2、…、Xk的权。
(3)几何平均数
几何平均数(geometric mean),是指n个观察值连乘之后开n次方根。
0x05 数据的离散程度
5.1.数值型数据
(1)方差
作用:是用来衡量一组数据的波动程度,即这组数据偏离平均数的幅度。在样本容量相同的情况下,方差越大,说明数据的波动越大,越不稳定。
(2)标准差
作用:标准差,是方差的算术平方根,反映一个数据集组内个体间的离散程度。
因为标准差的单位与样本数据的单位是一致的,比方差更加直观。
(3)极差
计算公式:R=max-min。
作用:极差,也称全距(range),反映的是变量分布的最大变异范围和离散幅度,在总体中任何两个单位的标准值之差都不能超过极差。极差越大,离散程度越大,反之,离散程度越小。
局限:极差只指明了测定值的最大离散范围,不能细致地反映测量值彼此相符合的程度。
(4)平均差
计算公式:
1.Xi为变量 2.X拔为算术平均数 3.n为变量值的个数。
作用:平均差,反映各变量与算术平均数之间的平均差异。
平均差越大,表明各变量与算术平均数的差异程度越大,该算术平均数的代表性就越小;
平均差越小,表明各变量与算术平均数的差异程度越小,该算术平均数的代表性就越大。
5.2.顺序数据
(1)四分位差(quartile deviation)
计算公式:QD = Q3 − Q1,是指第三四分位数(Q3)与第一四分位数(Q1)的差距,即上文中的四分位距。
作用:
四分位差反映了位于中间50%数据的离散程度,其数值越小,说明中间的数据越集中;其数值越大,说明中间的数据越分散。
此外,四分位差不受极值的影响。由于中位数处于数据的中间位置,因此,四分位差的大小在一定程度上也说明了中位数对一组数据的代表程度,四分位差越小,中位数越能代表这组数据。
5.3.分类数据
(1)异众比率
定义:异众比率(variation ratio),是总体中非众数的次数与总体的总频数之比。
作用:异众比率主要适合衡量分类数据的离散程度,反应众数对一组数据的代表程度。
异众比率越大,说明非众数组的频数占总频数的比重越大,众数的代表性就越差;
异众比率越小,说明非众数组的频数占总频数的比重越小,众数的代表性越好;
5.4.相对离散程度
(1)离散系数
定义:离散系数(coefficient of variation),是指一组数据的标准差与其相应的均值之比,其作用主要是用于比较不同组别数据的离散程度,是测度数据离散程度的相对指标。
作用:离散系数,反映单位均值上的离散程度,常用在两个总体均值不等的离散程度的比较上。
离散系数越小,说明平均指标(一般指平均数)的代表性越好;
离散系数越大,说明平均指标(一般指平均数)的代表性越差;
0x06 数据分布的形状
6.1.偏态系数
定义:偏态系数(coefficient of skewness),是度量数据分布对称性的指标,记作SK。
计算公式:
零值:偏态系数的取值为0时,表示数据为完全的对称分布。
正值:偏态系数的取值为正数时,表示数据为正偏态或右偏态。
负值:偏态系数的取值为负数时,表示数据为负偏态,或左偏态。
作用:
偏态系数,是对数据分布偏斜方向和程度的刻画。
偏态系数的绝对数值越小,表示数据偏倚的程度越小;
偏态系数的绝对数值越大,表示数据偏倚的程度越大。
6.2.峰态系数
定义:峰度系数(Coefficient of kurtosis),是用来反映频数分布曲线顶端尖峭或扁平程度的指标。
公式:
作用:峰度系数,用来度量数据在中心聚集的程度。
在正态分布情况下,峰度系数值是3。
大于3的峰度系数说明观察量更集中,有比正态分布更短的尾部;
小于3的峰度系数说明观测量不那么集中,有比正态分布更长的尾部,类似于矩形的均匀分布。
以上可以看出,无论是衡量偏态还是峰度,都是相对于正态分布而言的。
0x07 《数据可视化指南》补充
7.1多个变量间比较
热点图可发现所有对象的所有变量。
切尔诺夫脸谱图(Chernoff Faces),不每个对象都被各种指标切散,而是希望当做一个的整体来观察。(方法并不是业界通用的标准方法),而且可能会让读者一头雾水,但其非常有趣。
星图和切尔诺夫脸谱图能方便地找出各个对象与同类之间的差异,但它们却很难描述群组或各变量之间的关系。
平行坐标图能描述群组或各变量之间的关系。
7.2 多维量法
当我们使用切尔诺夫脸谱图或平行坐标图时,主要的目的是去减少。我们希望在数据集或者全体中找出不同的分组。这里的挑战在于,我们并不总是清楚从哪里开始观察这些脸谱或者连接线,所以如果能根据某些标准将对象划分为不同的群集,事情就会容易得多。这就是多维量法(MultiDimensional Scaling,MDS)的目的之一。将所有事物都考虑进来,然后在图表上将相互更类似的对象靠近放置。
7.3 异常值
一方面,我们要探究数据对象为什么属于某个群组,另一方面,也应该探究它们为什么会不属于某个群组。也就是说,总会有一些数据点从同类中凸显出来,正如你所猜到的,它们被称为“异常值”(outlier)。这些数据点和全体中的其他数据显得格格不入。有时候它们正是你的故事中最值得人注意的亮点,有时候它们可能只是无聊的笔误。
深入理解数据的上下文背景,做好功课,如果对某些问题不太确定,不妨询问该方面的专家。找到异常值后,我们完全可以用之前所掌握的图表绘制技巧对它们进行强调:添加不同的颜色、使用箭头或者更粗的边框等。
0x08 有关关系的可视化
8.1 关联性
关联性可以帮助我们根据某一已知指标来预测另一指标。要想探究这种关系,让我们看看散点图和多重散点图。
散点图不仅可以应用于时间,还可以表现两个变量之间的关系。
图表只是整个故事的一部分而已,对故事结果的解读仍然取决于人,而这对于关系来说非常重要。也许你会尝试表现出数据间的因果关系,但大多数情况下它们都并不准确。
散点图矩阵可以两两比较所有变量。
气泡图最简单的气泡图就是一系列尺寸按比例显示的气泡,不过现在我们可以考虑它的变体,也就是带有“气泡”维度的散点图。
需要注意的是气泡的面积大小,因为很多人会在这个地方出错。在第1章中我们就曾提到过,气的大小是根据面积来的,而不是半径、直径或者圆的周长。
8.2 分布
直方图(histogram)
柱形的高度表示频率,而柱形宽度没有具体意义。直方图的水平轴和垂直轴都是连续的,而一般柱形图的水平轴上各个数值则是相互分离的。在使用柱形图时,一般会通过水平轴表现各类别,而且各个柱形之间通常会留有间隙。(有许多人往往会误认为水平轴只能是时间,水平轴可以是时间,但绝不仅限于此。在考虑的受众群体时这一点非常重要。如果图表主要呈现给普通读者,那么就需要解释图表的阅读方法,以及需要注意的地方。)
应该根据所要可视化的数据特点来决定分段的数量。如果大部分数据都聚集在某个取值域内,那么就应该采用较多的分段,以便观察其中的细节变化,而不是只生成一个很高的柱形。但如果没有那么多数据,或者数字的分布比较平均,那么较粗的柱形就会更加合适。
密度图(density plot)
直方图的数值轴是延续性的,但整个分布依然被分成了数个柱形。每一个柱形代表的都是一些条目的集合。也可以用密度图来对分布的细节变化进行可视化。(观察每个柱形内部的变化)用曲线代替柱形图的效果,曲线以下的总面积等于1,垂直轴代表的是可能性,或者说样本群体中某个值所占的比例。
8.3 对照和比较
通常来说,将多个分布同时进行比较会带来更大帮助,而不是只考虑平均数、中位数和众数。毕竟这些摘要性质的统计只是对大局的一种“描述符”,它们讲述的只是故事的片段。
系列组图
将大量小图表归于一起的技巧通常被称作“系列组图”(small multiples)。这种图表方便读者多个群组和分类之间及其内部比较。
8.4 小结
在数据中探索关系有时候会颇具挑战性,而且还需要更多的批判性思维,不能盲目地拿着数字就开始画图。不过,这样也会呈现更多的信息,带来更大的回报。它表现了你的数据,或者说数据代表的事物之间是如何关联及互动的,这些才是最有意思的部分,正是它们造就了最好的故事。
0x09 案例练习
场景1:比较三家电商公司在消费者心中的印象评分。
因为数据中,有3个电商(系列),4项评分(维度),故雷达图较为合适。
场景2:了解这50家店铺的收入、成本和店铺综合评分的分布。
参考阅读:
1.《如何优雅地选择数据图表:对比型和分布型数据图表》(「对比型数据」和「分布型数据」)
2.《统计学第1篇 描述性统计》
3.《鲜活的数据》第7章P185,第6章P162。