业务数据以文字、数字的方式呈现,对于人类来说,毕竟是抽象的。如果用颜色、大小、形状、位置等来表示,以达到对数据的比较、比例、趋势、分布等的一目了然,这就是数据可视化。总而言之,数据可视化是以人类眼睛可快速辨识的方式呈现数据。
数据可视化的目的,在于信息的传递和沟通。小到个人工作汇报,大到国家新闻传播,处理恰当的数据可视化,可以让接收者在短时间内获取到发送者所要表达的核心观点,且印象深刻。当然,轻分析的分析工具,更多的时候是希望使用者用于自助式的数据探索,那么信息的发送者和接收者就都是使用者本人,这并不妨碍对此的理解。
数据以点、线、面等图形元素(称为“标记”)表示,并在颜色、大小、形状等要素(称为“视觉通道”)上进行映射,这是数据可视化的基本理论。
数据通过视觉通道的映射,按数据的性质不同,相应有两种类型。一种是“定性”,一种是“定量”。
定性也就是分类,例如优先级“高”、“中”、“低”,季度有“一”、“二”、“三”、“四”,地区分为“东北”、“华北”、“华南”、……,等等。将它们 对应成红、蓝、绿等几个不同的颜色,或者将它们对应成圆形、方形、三角形等几个不同的形状,诸如此类就是“映射”。
定量是指数值在一个区间内的连续变化,将它对应成柱子的长短,将它对应成面积的大小,或者将它对应成一个颜色的深浅过度,诸如此类也是“映射”。
颜色在数据可视化中有最为广泛的应用,也是视觉上最有辨识度的一种表达。
RGB色彩模式是常用的颜色表示方式,它由红色(Red)、绿色(Green)、蓝色(Blue)三个分量的叠加来表示一个颜色。每个分量可以是0至255的整数,用16进制表示就是0至FF。RGB的色值以井号(#)开头,跟随六位的16进制值(分别对应三个分量,每个分量两位)。
例如 #FF0000 是纯红色, #00FF00 是纯绿色, #0000FF 是纯蓝色,全部为零 #000000 是黑色,全部都有 #FFFFFF 是白色。另外,红加绿 #FFFF00 是黄色,红加蓝 #FF00FF 是洋红色,绿加蓝 #00FFFF 是青色……如果各个分量在0至FF之间取不同值,就可以组合成各种各样的颜色,这很像画油画、水彩画时将颜料混合调色。
HSL色彩模式是另一种颜色表示方式,它由色相(Hue)、饱和度(Saturation)、亮度(Lightness)三个分量来描述。其中,色相取值0至360,可以围成圆形的一圈,0与360是相同的。饱和度、亮度分别都是取值0%至100%。
为了更直观的理解,在三维空间中,用一个圆柱体来表示HSL模型。圆柱体在高度上是亮度的变化,上底全是白色,下底全是黑色;在圆形的横切面上,半径方向是饱和度变化,圆心饱和度最低,圆周上饱和度最高;360度的圆周一圈对应的则是色相。如果让空间中每一个点与颜色值一一对应,则圆柱体可以变形为两个相扣的圆锥体。
与RGB相比,HSL更符合人的直觉。色相也有翻译为色调,就是人眼感知的红橙黄绿青蓝紫(0-360的值就是这个顺序)的色彩。饱和度高,颜色就更鲜艳;饱和度低,感觉则更灰白。亮度就是明暗变化,加大到最亮是纯白,减小到最暗是纯黑。
在轻分析的自定义颜色设置界面上,方形的彩色面板,在横向上是色相,在纵向上是饱和度,鼠标可以点击或拖动到其中任何一个位置进行选择。相邻的竖条表示的是亮度,同样可以点击或拖动。这样就能以HSL的思维方式来确定一个色值了。在选择的过程中,右侧RGB的输入框的数值会同步变化,它们以不同的模式表示着同一颜色。
以眼睛可快速辨识的方式传递信息是数据可视化的目的。而信息传递过程中,具体的意图,是为了进行比较,还是为了显示比例,是为了呈现趋势,还是为了展示分布,抑或其它。不同的意图,应该使用不同类型的图表来表达。
柱形图是最为常见的以比较为目的的图表。这种图表横轴表示分类(维度),每个值(维度成员)对应一个矩形;纵轴表示数值(度量),对应矩形的高度。这样,各个分类就以柱形的高低来进行数量的比较,谁多谁少一目了然。
横条状的条形图与竖条状的柱形图,表达上完全一致,只是调换了横、纵轴,柱形高低变成了条形的长短。
另外,像雷达图、多系列折线图等,也有比较的意图。
饼图是最为常见的以展现比例为目的的图表。这种图表由一个整圆切成多块扇形来表示,每一块扇形是一个维度成员,对应一种颜色,扇形的角度大小对应了度量值。通常,按度量值从大到小,并以钟面顺序从12点钟方向开始排列。这样,扇形的角度占360度周角的大致比例一目了然,前几名过四分之一、过半、过四分之三也很容易判读。
饼图在外观上的变化,例如环形图,例如加上半径表示数量以夸张事实的玫瑰图,都是以展现比例为目的。
另外,像堆积柱(条)形图、百分比堆积柱(条)形图、树图等,既有比较的目的,又有呈现比例的意图。
折线图是最为常见的以呈现连续变化及整体趋势为目的的图表。这种图表一般横轴作为时间轴(日期维),纵轴表示度量值。横轴上的每个时间粒度(例如按年、按月……)对应一个点,点的上下位置由度量值对应纵轴上的刻度决定。依次将每个点用线连接起来,形成折线。这样,数量随时间变化的趋势也就一目了然。
另外,像面积图、百分比面积图等,既能呈现趋势,又能体现比例。
散点图是最为常见的展示两个度量值之间关系的图表。这种图表横轴、纵轴分别表示一个度量值,再有一个维度,每个维度成员对应一个点,点的位置分别由横轴、纵轴上的刻度决定。这样,从众多的点的散落位置,容易发现两个数量之间是否有相关性(相关性不意味着必然的因果关系)。
气泡图是散点图的变化,它加上第三个变量表现为点的大小,可展示三个数量之间关系。
另外,直方图等,也是展示分布的图表。
概念图是一种与数据的统计值无关的图表,不管度量值怎么变化,图表是确定不变的。
由于数据无关,严格意义上,概念图并不算是数据可视化。它只是通过图形的隐喻,表达一些抽象的概念。但如果用得恰当,也可以有助于对复杂事物的直观理解。
漏斗图就是一种概念图,整体呈倒梯形,数值的变化仅仅体现在数据标签上,而图形总是不随之改变。