喜乐君(XILEJUN):Tableau Visionary 名人堂成员,著有《数据可视化分析》《业务可视化分析》等。slogan:「唯有知识让我们免于平庸」。
📌 要点 · 图形不是“挑好看的”,问题类型在落笔前就决定了最佳图形; · 可视化 = 空间 + 坐标轴,坐标轴只来自“连续”字段(Tableau 中以绿色表示); · 维度≠离散、度量≠连续——连续 / 离散是主观的“字段角色”,数据类型才是客观的。
开场:从问题到图形
前两期我们解决了一个根本问题——问题怎么写。第 1 期立起了「业务 ← 数据 → 分析」的框架,第 2 期把问题的统一结构讲透:一个问题 = 范围 + 维度(的左边)+ 度量(的右边)。
这一期的定位是可视化落地:把写好的问题真正变成图形。一句话概括本期主线——问题的最佳图形,在你写问题时就已经确定,不是挑好看的。
但这里有一个容易被忽略的转折:问题的结构(维度 / 度量)解决的是"问题怎么写",而真正决定一个图形能不能画出来、长什么样子的,是另一个属性——字段的连续与离散。上一次我们结尾预告过这句话:"什么问题生成什么图形,连续 / 离散属性决定能否生成轴。"这一期,我们就把这句话彻底落地。
顺着这个逻辑,问题类型与最佳图形之间有这样一条自然的对应关系(后面会逐一落地):
- 比较 / 排序 —— 条形图、柱状图
- 趋势 / 时间 —— 折线图
- 构成 / 占比 —— 饼图、环图、百分比堆积图
- 分布 / 形状 —— 直方图、盒须图(下期详讲)
- 关系 / 相关 —— 散点图、气泡图
图形不是"挑好看的",是"问题自然选出来的"。
一、先理解数据:一行对应什么业务过程
动手画图之前,先要搞清楚你手上的数据对应的是什么业务过程——这是分析的地基。
这一期我引入了一份新的案例数据:一份美国各州学生心理测评的统计结果。它想回答的问题是"各个州、不同年度、不同群体的心理健康状况如何"。这份数据来自公开样本,已经在源头被高度聚合——每一行代表"某一年度、某一个区域、某一个观察视角(type,比如总体、男学生、女学生)下,某个题项(question)的一个 percent 值"。比如阿拉斯加在 2023 年总体健康是 13.2%,旁边还带一个上下波动的区间(可信区间),因为样本数据天然围绕真值波动。
这里要提醒一个关键的方法论:理解一份数据,必须理解它最详细的业务过程对应到哪一级"颗粒度"。一行数据到底代表什么?如果到不了最细的那一级(我们常说"要到一"),你就没法真正理解这份数据。比如,当你看到坐标轴上最大值是 2 时,就说明一定存在某一行的值是 2;如果所有行都是 1,轴只会延伸到 2(表示连续性)。反过来,如果最大值是 3,就必然有一行是 2。这个细节能帮你判断数据的详细级别。
为了讲清"什么才是唯一的",我现场切换到了大家熟悉的超市订单数据:订单 id 看起来唯一,但加上"订单计数"你会发现它并不唯一;再加上"产品"依然可能不唯一——因为同一次购物可能被扫成两行,也可能合并成一行。所以"什么是唯一的"取决于业务过程本身,而行 id 在业务上往往没有意义,只是技术上的标识。
结论:高度聚合的结果表(如这份心理测评)并不适合做底层的大数据分析,用它来理解业务过程也不够客观;但用它来讲可视化原理恰好合适。动手画图前,先想清楚"一行对应什么"。
二、从条形图理解可视化的原理
我们不从交叉表开始(交叉表无所谓图形),而是从最基础的条形图开始——理解了条形图,其他图形就都好理解了。
2.1 双击一个值:连续 → 轴 → 空间 → 图
在 Tableau 中,当你双击一个度量值(比如 percent),它默认会被聚合(SUM),并且默认是连续的。而连续的值,为了表达"连续性",它会生成一个坐标轴——这个轴从零开始,向上延伸到该值(比如 90K、100K 的刻度)。
当你再加入一个维度(比如 area 区域),视图里出现了多个值,它们都被放在同一个连续的刻度上去比较"谁多谁少",图形就这样自然出现了。比如把年份加进来,轴上有 2019、2021、2023 等多个值;再把区域加进来,值更多——它们都被放在同一个连续刻度上比高低。
这里引出了 Tableau 最关键的视觉语言之一:颜色代表连续 / 离散——
- 绿色 = 连续:生成轴、数值刻度、连续区间;
- 蓝色 = 离散:生成标题(header)、标签、分组。
而第 2 期讲的"维度 / 度量"是另一组属性,靠数据窗格里的一条分隔线区分(线上是维度、线下是度量),那是字段的"内容"分类。
2.2 图形的价值:规律 vs 细节
为什么我们更喜欢看图形?因为图形在表达数据的同时,直观地展示了规律。
举个例子:把性别放到颜色上,男女两组心理健康得分一对比,立刻能看出"某一侧比另一侧更低"。我们甚至可以加两根参考线(比如平均值),把结论直接可视化。
但这里有个重要的权衡:图形让精确性下降,却让规律性提高。具体的值从 41.87 变成了"大约 40 多",确定性降低了;但"谁高谁低"的规律被凸显了。抽象与具体是一对相反的东西——当你要表达的东西更抽象、更概括时,就不得不以失去一些细节为代价。这就好比一个将军,长征时能记住每个兵的名字,现在手底下兵太多,他记不住了——细节和抽象,在可视化里往往不可兼得。
2.3 坐标空间:轴 → 笛卡尔空间
规律依赖图形,图形依赖什么?依赖坐标的空间;坐标空间依赖什么?依赖坐标轴。没有坐标轴,就没有空间,也就没有图形。
最典型的空间就是我们中学就学过的笛卡尔空间,通俗地说就是直角坐标系(X 轴、Y 轴)。Tableau 里的"行(row)"和"列(column)",本质上就是在构建这个行列空间。你做任何一个图,其实都是在用行和列撑起一个坐标空间。
但要记住:空间不只有一种。地图对应的是球面空间,饼图对应的是极坐标空间——它从 12 点钟方向往右转,那才是饼图真正的"轴"。我们外面的 XY 轴,你可以理解为只是把饼图"放"在了一个空间里。
三、连续与离散:图形能否生成的开关
可视化的地基是坐标轴,而只有连续性字段才能产生坐标轴。所以连续 / 离散,才是图形能否生成的那个"开关"。
3.1 什么是连续性
严格来说,具有连续性的东西有两种:
- 数值:40 一定比 30 大、比 35 小,天然可以排到无穷;
- 日期 / 时间:2018、2019…2024,可以一直往后排,也可以往前排。
进一步区分,连续性又分两种:
- 无限连续:可以永远往下排、排不到尽头(数值、日期);
- 有限连续(次序):比如心理测评里的"健康、良好、危险",它也有连续性,但有尽头——到了"危险"后面就没了。正因为有限,我们通常不会用轴来显示它,更不会用条形图去给它"排序"(排序的前提是没有既定次序)。
与之相对的是不连续(离散):比如地区、人名。人和人之间天然平等,你不能说"谁在前谁在后"——除非你给了一个排序的依据(比如按某个连续值排序)。没有依据,它就是不连续的,不能放在轴上。所以所有图形的基础,其实都来自这个连续 / 离散的区分。
3.2 字段角色(Role)vs 数据类型(Data Type)—— 核心区分
字段分类里,有一对极易混淆的概念,必须严格区分:
- 数据类型(data type):是字符串、日期还是数字?它是客观的——当你把一张数据表加入 Tableau 时,类型就确定了。你可以改(把日期改成小数、改成字符串),但那只是改了你"肉眼看见的",数据在存储层面依然是它本来的样子,改回默认值就回去了。
- 字段角色(role):是连续还是离散?它是主观的——只存在于"问题"之中。
关键在这里:在明细表(detail)里,只有客观的数据类型,没有主观的字段角色;只有在你提出一个问题、把字段拖进行列时,角色才出现。同一个字段,在 A 问题里是维度(离散),在 B 问题里可能变成度量(连续)。所以连续 / 离散不是写死的,右键随时可以切换——你甚至可以为了少占视觉空间,把一个绿色的连续字段右键改成离散。
这就打破了那个最常见的误区:维度 ≠ 离散,度量 ≠ 连续。二者是正交的两组属性——
- 维度 / 度量,是按"内容"分(位置区分,分隔线上 / 下);
- 连续 / 离散,是按"使用方式"分(颜色区分,绿 / 蓝)。
日期是维度,但可以作连续(生成轴);数量是度量,但右键可离散成标题。很多国产 BI 工具把"字符串 = 不连续、数字 = 连续"硬绑定在一起,正是认知上的误区——分不清这一点,就不是一个好的 BI。
四、三图一表:业务分析的四个基本功
绝大多数业务问题,落到图形上就是这四个形态:表给精确、图给直觉。先把这四样练扎实,再谈花式图表。我们顺着条形图、折线图、饼图、交叉表的顺序一个个讲。
4.1 条形图:排序问题的最佳图形
条形图的统一规律是:一个离散(分类)字段 + 一个连续(值)字段。离散的字段本身没有次序(不能说阿拉斯加必须在前),但我们可以用那个连续的值去给它排序——这就是为什么你能"点一下就排序"。注意:阿拉斯加排在前面,只是计算机默认的字母次序(ABCD),在业务上往往没有意义,真正有意义的次序来自那个连续的值。
- 我更推荐横向条形图而非柱状图:人对"长度"比"高度"更敏感,左边的标签也能显示得更清楚。
- 当有多个字段时,谁在后面,谁就是视觉的焦点。比如把"性别"放在区域后面,强调的是"每个区域内部男女的差异";反过来,则强调"可比的男女内部、不同区域谁高谁低"。动手前先想清楚你要强调的规律是什么。
- 加一根平均参考线(通常用虚线),能直接把组间差异标出来。
4.2 折线图:看趋势
日期本身就是连续的。当横轴是日期(连续)时,它不能被排序——于是我们不再比较高低,而是看它沿着时间怎么变。
所以三图一表里最核心的两个图,区别就在"能不能排序":没有时间的字段,我们默认强调那个离散字段的高低排序(条形图);有了连续的日期,就强调沿时间的趋势(折线图)。这就是问题类型决定最佳图形的具体体现。
4.3 饼图:高级分析的入门(层次感)
为什么说饼图是高级分析的入门?因为饼图里藏着前面条形图、折线图都没有的一种东西——分析上的层次感。
看一个"不同性别的问卷数量"的饼图:表面上它回答的是显性问题(各性别的数量);但当你用"合计百分比"时,它同时回答了隐性问题(占总体 19719 的多少)。那个分母(total)是全体性别之和,在饼图里被隐含进了百分比。
在 Tableau 里,这个百分比的本质是 SUM(...) / SUM(...) 外面套了一个 total——而 total 换个说法就是窗口函数(window sum),在 SQL 里是 SUM() OVER (...)。Tableau 里我们称之为表计算。所以饼图"高级"在:它是两个不同力度的问题叠加在一起。
4.4 环形图:饼图的升级版
饼图好看但不"好用"——它把隐含的分母藏起来了。于是有了环形图:用双轴把"各性别"和"总体"两个观察视角叠在一起,把分母明确放出来。环形图比饼图用得更多,不只是因为好看,更因为它更丰富,把那一层潜在的意思表达出来了。
顺带提一句可视化的"框架":行列是空间(坐标系),坐标系里可以叠很多层——颜色是一层,标签是一层,再加一句话又是一层。这就像女人化妆:洗洗脸、打粉底、抹粉、画眉毛,一层一层上来。可视化也是一层一层叠出来的,而这一层一层,靠的就是"标记(marks)"卡。
4.5 交叉表:所有图形的反面
最后说"一表"——交叉表。它是任何一个图形背后硬币的反面。
蒋老师写的《结构可视化原理》里有一个很好的方法:当你做一个图太难时,先从交叉表开始——先把表里的数算出来,再想"哪里该造一个轴、该用连续还是离散",把轴造出来、把数填进去,图形就慢慢长出来了。所以说:所有的可视化背后其实都是交叉表。
五、可视化原理总结与下期预告
今天这一期,我们讲清了可视化的底层原理:
- 可视化 = 空间 + 坐标轴;坐标轴在 Tableau 里对应绿色的连续字段。
- 连续 / 离散是主观的,就像维度 / 度量一样,右键随时可切换;但数据类型是客观的,在明细表里就定下了。
- 问题类型决定最佳图形:离散 + 连续 → 条形图(排序);连续日期 → 折线图(趋势);构成占比 → 饼图 / 环形图(层次);而看"形状"则要靠下期的分布分析。
我常跟学生说一个词叫"逆流而下":很多人学 BI 总想着抄近路、抄国产工具,结果连数据类型和字段角色都分不清,设计出来的工具、教出来的方法都走样。与其逆流而上累死在半路,不如一开始就爬上 Tableau 这座"喜马拉雅山",再俯冲下来——等你掌握了工具背后的分析方法,换任何国产工具都是降维打击。
下期预告:分布分析(直方图与盒须图)
今天因为时间关系,还差两块最重要的内容没讲完,留到下一期——直方图与盒须图,它们都属于分布分析。
心理测评本质上就是分布的特征:男和女比对、这个班级和那个班级比对,看的都是"分布长什么样"。在分析中,真正的转折点是从分布分析开始的。而分布分析的典型,一个是直方图(连续度量按区间分箱看频数,顺带引出数据桶与 FIXED LOD),一个是盒须图(看中位数、四分位、须与离群点,盒与须都是表计算的简化形式)。
下期,我们就从"看多少"跨入"看形状"。
No comments yet