跳转至

Lecture 4:数据可视化

学习目标

完成本讲后,应当能够:

  • 区分探索性数据可视化(exploratory data visualization)与解释性数据可视化(explanatory data visualization);
  • 从比较、分布、构成、趋势、偏差和关系六类问题出发选择图表;
  • 说明常见图表的适用场景与限制;
  • 识别颜色、坐标轴、三维效果等造成的误导性表达;
  • 根据任务选择 Python、电子表格或商业智能(business intelligence,BI)工具。

1. 为什么需要数据可视化

数据可视化(data visualization)使用图形、图表和地图等视觉元素表达抽象数据,使人更容易理解、解释和记忆信息。人脑并不擅长直接处理大量表格数字,却擅长识别位置、长度、颜色、形状和模式;可视化正是连接数据与认知的外部工具。

一张有效图表应当帮助读者快速发现:趋势(trend)、异常值(outlier)、群体差异和变量之间的关系,而不是只把原始数字换成更华丽的形式。

探索性与解释性可视化

类型 核心目的 典型受众 特点
探索性可视化 在分析过程中发现规律、问题和假设 分析者、研究小组 可包含多个视图与细节,侧重试探
解释性可视化 向他人清楚传达已经得到的结论 管理者、客户、公众 信息取舍明确,强调叙事和关键结论

探索阶段可以先多看、多试;汇报阶段则要回答一个明确问题:读者看完这张图,应该记住什么?

2. 先根据问题选择图表

选图前先确认要表达的关系、受众需要知道什么,以及希望读者采取什么行动。课件将常见任务归纳为六类。

要回答的问题 推荐图表 使用要点
比较(comparison) 条形图、柱状图、点图 统一基线与排序,便于比较长度或位置
分布(distribution) 直方图、密度图、箱线图 观察中心、离散程度、偏态和异常值
构成(part-to-whole) 堆叠条形图、饼图 类别较少时使用;多类别时优先堆叠条形图
时间趋势(trend over time) 折线图、面积图 横轴按时间顺序排列;不要把离散类别伪装成连续趋势
偏差(deviation) 发散条形图、控制图 用基准线和正负颜色突出偏离程度
关系(relationship) 散点图、热力图、气泡图 显示变量关系、分组、回归趋势或相关性

选图口诀

先问数据之间是什么关系,再决定图表。不要从“我想画饼图或 3D 图”开始。

3. 常见图表

3.1 比较与构成

  • 条形图(bar chart):适合比较离散类别。横向条形图尤其适合类别名称较长或类别较多的情况。
  • 柱状图(column chart):与条形图类似,适合并列比较,也常用于按时间展示变化。
  • 堆叠条形图(stacked bar chart):同时表达总量与组成部分;但除第一段外,各段缺少共同基线,跨类别比较不够精确。
  • 饼图(pie chart):表达一个整体中少量、互斥类别的比例。类别多、差异小或需要跨多个饼图比较时,应使用条形图。

3.2 分布与离群值

  • 直方图(histogram):把连续变量分箱(binning),显示频数或密度。箱宽会影响形状判断,应尝试合理的分箱数量。
  • 密度图(density plot):对分布进行平滑估计,适合比较多组连续数据;样本很少时不应过度解读平滑曲线。
  • 箱线图(box plot):以中位数、四分位数和须概括分布,可快速比较多组数据并发现异常值。
  • 小提琴图(violin plot):同时给出箱线图摘要和分布形状,但对不熟悉其读法的受众应搭配说明。

3.3 趋势与关系

  • 折线图(line graph):突出连续时间或有序变量的变化趋势,可比较少量系列。
  • 面积图(area chart):强调累计量或变化的持续时间;多系列重叠会降低可读性。
  • 散点图(scatter plot):在两个连续变量之间寻找相关、聚类和异常点,可用颜色、形状或分面表示第三个类别变量。
  • 热力图(heat map):用颜色编码矩阵或二维网格中的数值,例如相关系数矩阵。色阶应有清晰含义,并考虑灰度可辨性。
  • 气泡图(bubble plot):在散点图上用圆面积编码第三个数值变量。面积不易被精确比较,适合强调量级而不是精细排序。

3.4 谨慎使用的形式

  • 维恩图(Venn diagram)适合展示少量集合的重叠,但不适合精确比较面积。
  • 仪表盘(gauge)可显示单个指标与阈值的关系,却占用较大空间;KPI 同时较多时,紧凑的指标卡或条形图通常更清晰。
  • 3D 图表会引入透视和遮挡,使长度、面积或体积难以比较。除非三维空间本身是数据语义的一部分,否则优先使用二维图。
  • Dynamite plot(均值加误差线柱状图)容易掩盖原始数据的分布、样本量与异常值。小样本或偏态数据应优先展示点、箱线图或分布图。

4. 设计一张有效图表

4.1 有效性与表达性

有效性(effectiveness)关注视觉编码是否让读者准确读出数值和关系,例如位置通常比面积和颜色更容易比较。表达性(expressiveness)要求图表不表达数据中不存在的事实,也不遗漏完成任务所需的关键信息。

实践中可按以下顺序处理:

  1. 写下图表要传达的一句话结论;
  2. 确定数据类型:类别、顺序、时间、连续数值或地理位置;
  3. 选择能直接支持该结论的图表;
  4. 用标题、标签、注释和图例降低理解成本;
  5. 删除不帮助阅读的装饰。

4.2 信息量与可读性的平衡

图表需要在信息量(informativeness)与可读性(readability)之间取舍。信息过少可能隐藏重要差异,信息过多又会造成认知负担。可采用小 multiples(同尺度的多个小图)、交互筛选或分层展示来保留细节。

课件还介绍了多图组合(multiple plots)、混合图(hybrid plots)和多坐标轴(multiple axes)。它们可以揭示更多关系,但必须保持尺度、标签和阅读路径清楚。尤其是双轴图,若两条纵轴尺度可任意调整,很容易制造虚假的同步变化。

5. 常见陷阱

问题 风险 改进方式
图表类型与问题不匹配 读者无法正确比较或推断 从要回答的问题出发选图
截断坐标轴 小差异被夸大,尤其在条形图中 条形图通常从 0 开始;若截断,明确标识并解释
坐标轴未标注或间距不等 数值含义不清,视觉比例失真 标出单位、刻度和时间范围,保持等距
缺少标题、图例或数据来源 图表脱离上下文,难以核验 使用结论式标题,补充图例与来源
颜色使用随意 色彩强调了错误重点,或色盲/灰度下不可区分 使用语义一致、对比充分的色板;不只依赖颜色区分
使用 3D 元素比较数量 透视让面积、体积和高度产生错觉 使用二维位置或长度编码
用不连续横轴暗示连续关系 形成不存在的趋势 区分类别轴和连续时间轴

坐标轴与比例

坐标轴不一定永远从 0 开始。对于折线图,合适的局部尺度可以帮助观察真实波动;但必须让读者清楚看到完整范围,且不能借此夸大结论。对条形图而言,截断基线通常会严重误导。

6. 工具选择

工具 适用场景 特点
Excel / Google Sheets 快速分析、轻量汇报、协作 内置常见图表与推荐图表;Google Sheets 适合多人协作
Jupyter Notebook + Python 可复现的数据探索与报告 Matplotlib、Seaborn、Plotly 等库覆盖静态与交互式图表
RStudio / Shiny R 语言分析与交互应用 适合统计绘图、仪表盘和网页应用
Tableau / Power BI / Cognos 业务仪表盘与自助分析 拖放式构建、连接多种数据源、便于发布与共享

工具不会替代判断。无论使用哪种工具,都应先明确受众、结论和数据关系,再决定视觉编码。

复习清单

  • 能否根据“比较、分布、构成、趋势、偏差、关系”快速选出合适图表?
  • 是否知道散点图、直方图、箱线图、堆叠条形图与热力图各在回答什么问题?
  • 是否能解释为什么 3D 图、截断条形图和均值加误差线柱状图可能误导?
  • 是否能从标题、坐标轴、图例、数据来源和颜色五方面检查一张图?