web design uiApril 23, 202615 min read

设计师的数据可视化:如何做出真正能传达信息的图表

一位在职设计师的数据可视化指南。图表选择、色彩、层级、无障碍,以及让数据变成用户三秒内就能读懂的图表的各项原则。

By Boone
XLinkedIn
data visualization for designers

大多数产品仪表盘都是噪音。十二张图表、六套配色、没有清晰的层级,用户还得逐张研究才能弄明白它到底在衡量什么。团队管这叫数据驱动,然后上线了。用户管这叫看不懂,然后无视它。

这篇文章是实战版本。真正能传达信息的图表类型、在小尺寸下依然成立的色彩规则、让用户三秒内理解数据的层级决策,以及保证作品可用的无障碍底线。没有 D3 教程,没有图表画廊,只讲真实产品里数据可视化的设计纪律。

数据可视化到底是什么

数据可视化是把数字编码成形状,让眼睛比大脑读文字更快地完成比较。 柱状图把一列数字变成一组矩形,眼睛能瞬间比较它们的高度。折线图把时间序列变成一条斜率,眼睛把它读成一个故事。编码就是全部工作。

糟糕的图表,就是编码和数据打架的图表。十一块扇区的饼图,编码出来的东西眼睛根本没法比较。3D 柱状图先编码了数据,又为了视觉效果把编码扭曲。双轴折线图把两个故事编码得像一个故事。每一种都是设计的失败,不是数学的失败。

视觉层级设计那篇讲的是眼睛如何阅读静态页面。数据可视化,就是把层级用在数字上。

为什么产品中的数据可视化设计很重要

大多数产品界面,每屏只有一两条信息。仪表盘却有几十条。没有设计纪律,仪表盘就会变成一堵互相争抢的信号墙,用户找不到真正重要的东西。

数据可视化的失败方式也和其他设计不同。按钮颜色不对,只是难看。图表类型不对,是误导。用户根据自己以为图表说的内容做决定,而图表说的是另一回事。误导性图表的代价是错误的决策,而不只是难看的美学。

到了 2026 年,每个产品界面的数据量都比五年前更大。AI 功能会展示模型置信度、使用指标、成本拆分。分析类界面到处都是表格和图表。对任何比单一用途应用更复杂的产品来说,能搭建数据可视化系统的设计师现在都至关重要。


选对匹配问题的图表

选图表占数据可视化工作的 80%。选错了,再多的打磨也救不回来。选对了,设计几乎自己就完成了。

覆盖大多数产品工作的五大图表家族

大多数产品数据可视化都落在五大图表家族里。掌握这些,90% 以上的仪表盘工作就变成例行公事。

用户在问的问题图表类型
这个数字和同类别中的其他数字相比如何?柱状图
这个数字随时间如何变化?折线图
整体是如何构成的?堆叠条形图或树图(几乎绝不用饼图)
两个变量之间有什么关系?散点图
数值是如何分布的?直方图或箱线图

如果屏幕上的图表对不上其中任何一个,用户多半不知道它在回答什么问题。要么把图表改成匹配问题,要么改掉所问的问题。

什么时候用单个数字

产品设计中最被低估的图表,就是不用图表。一个大数字加一个标签和一个对比(“收入:$124,500,较上月增长 12%”),传达的信息比大多数十二张图表的仪表盘还多。

以下情况使用单个数字:

  • 用户只关心最新数值,不关心趋势
  • 趋势已经由对比语境暗示了
  • 屏幕空间有限(移动端、侧边栏、状态栏)

一个粗体排版、标签清晰的单个数字,视觉分量非常大。如果把一半图表换成单个数字,大多数仪表盘都会更好。

什么时候用小多图

小多图是同一种图表类型针对不同类别重复排成的网格。当用户需要比较多个项目之间的模式,而不是绝对数值时,就用它。

一个由 12 条迷你折线组成的网格展示各地区收入,扫读起来比一张画了 12 条互相交叉的线的图表快得多。眼睛先单独读每个地区,再比较整个网格里的形状。这项技巧来自 Edward Tufte,在产品仪表盘中依然用得太少。

上限大约是每个视图 16 到 20 个小多图。超过之后,眼睛没法全部比较,网格就变成了壁纸。

九个小多图排成 3x3 的体素网格,每个展示不同形状的迷你折线并标有地区名称。网格上方的一角,一个带对比标签的大数字占据主导
九个小多图排成 3x3 的体素网格,每个展示不同形状的迷你折线并标有地区名称。网格上方的一角,一个带对比标签的大数字占据主导

在产品中几乎永远行不通的图表

有些图表类型之所以长盛不衰,是因为它们在截图里看起来很唬人。在真实产品里,它们几乎从来传达不好。见到就砍掉。

超过三块扇区的饼图。 超过三四块扇区,眼睛就无法准确比较角度。改用堆叠条形图或树图。饼图只适用于两块扇区的比例(是/否、开/关),几乎别无他用。

3D 柱状图。 第三个维度会扭曲编码。前面的柱子看起来比实际大,后面的柱子看起来比实际小。永远用 2D。

双轴折线图。 一张图上有两个 y 轴,暗示这两条线应该被比较,但这种比较毫无意义,因为每个轴的刻度不同。用户读出了并不存在的相关性。要么拆成两张图,要么在一个轴上使用指数化数值。

中间带标签的环形图。 环形图就是多费了力气的饼图。里面的标签往往重复了屏幕上已有的信息。改用单个数字加一个小柱状图。

词云。 它们看起来像数据,却什么也传达不了。字号和频率只是松散相关,眼睛无法准确比较大小,而且更长的词因为像素更多看起来更大。见到即砍。

雷达图。 适用于非常特定的比较(同一刻度上的多维评分),但几乎总被误用于一般性比较。眼睛无法比较不规则多边形的面积。如果图表不是用于某个明确已知的场景,就用柱状图。

体素风的砍除清单。六种图表类型各自缩小展示并打着红色叉号:八块扇区的饼图、3D 柱状图、双轴折线图、中间带标签的环形图、词云、雷达图
体素风的砍除清单。六种图表类型各自缩小展示并打着红色叉号:八块扇区的饼图、3D 柱状图、双轴折线图、中间带标签的环形图、词云、雷达图

数据可视化中的色彩

数据可视化中的色彩不是装饰。它是编码的一部分。选错颜色,就能让图表从清晰变成误导。

色彩的三种用途

图表中的每一种颜色,都在做三件事之一:

分类色 用来区分没有顺序的离散类别。每个地区、每个产品、每个客户分群各用一种不同的色相。使用 6 到 8 种有区分度的色相。超过 8 种,眼睛就会开始混淆相近的颜色,编码随之失效。

顺序色 表示沿单一维度排列的有序数值。由浅到深,由低饱和到高饱和。使用单一色相的渐变,而不是多个。顺序色板通过明度而不是色相来传达量级。

发散色 表示围绕一个有意义的中点,从负到正变化的数值。红到白到蓝是经典例子。中点必须是真正的零点或阈值,而不是为了视觉方便。

三者混用会毁掉图表。用分类色板去编码量级,根本读不懂。用顺序色板去编码类别,令人困惑。为数据选对那一种。

设计师的色彩理论那篇讲了更广泛的色彩原则。色板词条讲了色板是如何构建的。

在小尺寸下依然成立的色彩规则

大多数图表配色,在图表真正所处的小尺寸下就失败了。一条 60 像素的迷你折线,没有足够的视觉空间清晰呈现八种分类色。

五条站得住脚的规则:

  • 每张图表最多使用 6 种分类色。 超过六种,眼睛就放弃了。
  • 留一种强调色给高亮。 用户应该最先看的那条线或那根柱,使用品牌色或高对比色相。其余全部压低。
  • 压低次要数据。 背景、网格线、坐标轴标签用 40% 到 60% 的不透明度。前景数据用满饱和度。这种对比就是层级。
  • 用单色测试。 把图表转成灰度,检查层级是否依然成立。如果图表只有靠颜色才行,说明颜色承担了太多工作。
  • 用深色模式测试。 大多数产品图表需要在浅色和深色背景上都能用。同一个色相往往在深色上显得太饱和,在浅色上显得太寡淡。为每种模式做一套配对色板。

深色模式设计那篇讲了更广泛的深色模式纪律。图表是深色模式中最难做好的部分之一。

色盲并不小众

大约 8% 的男性和 0.5% 的女性有某种形式的色觉缺陷。大多数在设计师眼里看起来没问题的分类色板,对这些用户来说根本没法读。

解决办法是永远不要只靠颜色编码信息。把颜色和形状、位置、标签或纹理搭配使用。一张有三条彩色线的折线图,也应该在每条线上有直接标签。柱状图应该为用户需要比较的柱子加上数值标签。

用色盲模拟器测试色板。最常见的失败是红色和绿色对绿色盲(deuteranopia)用户无法区分。改用蓝色和橙色作为分类配对,它们在最常见的几种色觉缺陷下都能用。

无障碍色彩对比度那篇讲了对比度的底线。对比度词条讲了对比度是如何测量的。


图表中的层级

每张图表都有层级。用户的眼睛应该先落在数据上,其次是标签,最后才是网格线和坐标轴。大多数产品图表把这个顺序颠倒了,用户得费劲才能找到数据。

强调什么,压低什么

数据是主角。柱子、线条、点获得最强的视觉分量。满不透明度、满饱和度,合适时使用品牌色或强调色。

标签和标题是配角。强到能读清,但不强到和数据竞争。通常是数据视觉分量的 50% 到 70%。

网格线、轴线和刻度线是舞台。只有用户去找的时候才看得见。通常是标签视觉分量的 20% 到 40%。

大多数产品图表上线时网格线都是满强度,因为这是每个图表库的默认值。解决办法就是一条 CSS 覆盖,把网格线压低,图表立刻就从模板味变成了设计过的样子。

直接标注胜过图例

图表侧边的图例会迫使用户的眼睛在图例和数据之间来回乒乓。直接标在每条线、每根柱或每个区段上的标签,让用户一遍就能读完图表。

直接标注实现起来更难,图表库对它的支持也不好。照做就是了。一张三条线都在右端标注的折线图,可读性远高于同一张图把图例放在角落。

例外是系列太多,直接标签放不下。这时使用可交互的图例。悬停或点击图例项,就在图表中高亮该系列并压低其余。

体素对比图。左侧标注“图例图表”:一张角落有图例的折线图,用户的视线在图例和数据之间画出之字形。右侧标注“直接标签”:同一张图,每条线右端都有标签,用户的视线从左到右一路读完
体素对比图。左侧标注“图例图表”:一张角落有图例的折线图,用户的视线在图例和数据之间画出之字形。右侧标注“直接标签”:同一张图,每条线右端都有标签,用户的视线从左到右一路读完

三秒法则

产品中的每张图表都应该在三秒内回答它的问题。如果用户得研究图表,设计就失败了。

如何测试三秒法则

把图表给一个没见过这个仪表盘的人看。问“这张图告诉你什么?”给回答计时。

如果回答在三秒内出来,图表就有效。如果更久,就找出拖慢他们的原因。通常是以下之一:

  • 图表类型和问题不匹配
  • 层级颠倒(网格线比数据还醒目)
  • 图例迫使视线乒乓
  • 色彩编码不清晰
  • 图表系列太多

修好问题,再测一次。每张图表都通过三秒测试的仪表盘,才是用户真正能用的仪表盘。

三秒法则不适用的情况

探索式分析工具(BI 工具、数据科学笔记本)不一样。用户不是在扫一眼,而是在调查。他们想要每个变量、每个维度、每个筛选器。三秒变成三分钟,这没问题。

错误在于用 BI 工具的纪律去做产品仪表盘。产品用户不是在调查,而是在查看。三秒就是预算。


数据可视化中的交互

产品 UI 中的图表是可交互的。悬停看提示框,点击做筛选,框选来缩放。这些交互需要和静态编码一样用心设计。

提示框设计

图表上的提示框回答的是“这个点的精确数值是多少?”大多数图表库默认的提示框会一次展示所有系列,悬停时就变成一堵文字墙。

更好的默认做法:

  • 每个系列一个提示框,而不是所有系列。 悬停你关心的那条线,看到那条线的数值。悬停在图表背景上什么都不显示。
  • 提示框包含单位。 是“$1,240”,不是“1240”。
  • 提示框在有用时展示对比语境。 “$1,240(较上周 +8%)”让提示框变成一个故事。
  • 提示框绝不挡住数据。 根据图表边缘与光标的接近程度,把位置放在光标上方或下方。

筛选与框选

支持直接操作的图表,给人的响应感是需要单独筛选面板的图表比不了的。在 x 轴上框选日期范围来缩放,点击图例中的类别来单独查看,拖动阈值线来筛选行。每一项都需要工程投入,但会换来用户的信任。

风险是过度工程。一张需要五种交互才好用的图表,就该拆成多张更简单的图表。每一种交互都是认知成本。

渐进式披露词条讲了更广泛的原则。图表可以用得很好:在用户表现出意图之前,先隐藏高级控件。


需要警惕的数据可视化失败

每次仪表盘审查都会发现同样的失败。如果产品上线时带着其中任何一条,数据可视化这一层就在拖整个产品的后腿。

截断 y 轴来夸大变化。 y 轴从 95 而不是零开始的柱状图,会把 2% 的变化变成一道视觉悬崖。除非有明确理由,否则使用完整范围的轴,并且明确标注任何截断。

柱状图没有零基线。 柱子的长度就是编码。如果柱子不从零开始,编码就在撒谎。这对柱状图没得商量。折线图在展示随时间的小范围变化时可以使用截断的轴。

同一个仪表盘里图表类型不一致。 两张柱状图用了不同方向,两张折线图用了不同的轴范围,一张饼图旁边摆着一张展示同样数据的堆叠条形图。为每个问题选合适的图表类型,但整个仪表盘的视觉处理要保持一致。

图表加载得比页面其余部分慢。 布局 200 毫秒就绘制出来、图表却要 2 秒的仪表盘,感觉就是坏了。为每张图表做骨架屏状态。对首屏以下的图表做懒加载。用流式传输数据,而不是等完整载荷。

无视品牌的图表。 使用图表库默认颜色的仪表盘,看起来就像模板。图表配色应该从品牌色彩系统派生出来,并针对无障碍和小尺寸可读性做调整。永远不要在生产环境上线带默认 Chart.js 或 Recharts 配色的仪表盘。

品牌色板那篇讲了更广泛的品牌色彩纪律。数据可视化色板是派生的,不是凭空发明的。


2026 年条件下的数据可视化

三种转变改变了数据可视化的设计方式。工作必须随之适应。

AI 几秒钟就能生成图表。 ChatGPT 和 Claude 这样的工具,一条提示词就能从原始数据生成图表。风险在于设计师不再思考图表选择,因为 AI 替他们选了。AI 几乎总是选一个和实际问题不匹配的通用图表类型。用 AI 做初稿,然后根据用户在问的问题重构。

实时数据成为默认。 仪表盘现在流式展示实时数据,而不是每 60 秒刷新一次。设计上的含义是,动效也需要设计。每次更新都闪烁的实时图表没法用。数据点之间的平滑插值和清晰的“实时”指示器是底线。

移动端仪表盘很常见。 只为桌面设计的仪表盘,会失去大部分周末和出行场景的使用。移动端的图表需要不同的决策,往往是更简单的图表类型、更少的系列、可滚动的更高布局,而不是被压缩的网格布局。

响应式设计那篇讲了更广泛的响应式纪律。数据可视化是最难做到真正响应式的层之一。


FAQ

我该用什么图表类型?

让图表匹配用户在问的问题。跨类别比较数值:柱状图。展示随时间的变化:折线图。展示整体的组成部分:堆叠条形图或树图(几乎绝不用饼图)。展示两个变量的关系:散点图。展示分布:直方图或箱线图。如果屏幕上的图表对不上其中任何一个,用户就不知道它在回答什么问题。

什么时候应该避免饼图?

几乎总是。饼图适用于两三块扇区、且比例就是全部故事的情况(是/否、开/关、简单的二元划分)。超过三块扇区,眼睛就无法准确比较角度,图表就变成了装饰。改用水平堆叠条形图或树图。

一张图表应该用多少种颜色?

最多六种分类色,外加一种强调色用于高亮的系列。超过六种,眼睛开始混淆相近的色相,编码就会失效。对于顺序数据(从低到高),使用一条由浅到深的单色相渐变。对于发散数据(从负到正),围绕一个有意义的中点使用双色相渐变。

如何让图表具备无障碍性?

永远不要只靠颜色编码信息。把颜色和形状、位置、标签或纹理搭配使用。用色盲模拟器测试色板(绿色盲最常见)。让图表元素与背景之间满足 WCAG 的最低对比度。尽可能提供直接标签,而不是只靠图例引用。为图表组件添加可供屏幕阅读器读取的无障碍名称。

图表的三秒法则是什么?

产品仪表盘中的每张图表,面对一个陌生用户时,都应该在三秒或更短时间内回答它的问题。如果用户得研究图表,设计就失败了。测试方法是把图表给一个没见过仪表盘的人看,并计时他们概括图表内容需要多久。超过三秒,就说明图表需要简化。

我该用图表库还是自己做?

初稿和原型使用图表库。产品 UI 中的大多数生产图表,都受益于在库之上加一层自定义来修正默认值:压低的网格线、直接标签、品牌化色板、自定义提示框。只有当图表类型特殊到没有任何库支持时,才有理由用 D3 或 canvas 做纯自定义的数据可视化。

数据可视化是设计,不是装饰

有纪律的数据可视化让仪表盘像一个尊重用户时间的产品。没有纪律的仪表盘,则像一堵恰好装着数字的装饰墙。两者之间的距离很小,通往前者的唯一道路,就是把设计纪律用在图表选择、色彩、层级和交互上。

选匹配问题的图表。压低网格线,突出数据。把颜色当作编码,而不是装饰。用三秒法则测试。用色盲测试。在移动端和深色模式下测试。

上线了有纪律的数据可视化的产品,读起来很专业。上线了图表库默认输出的产品,读起来像模板。用户即使说不出为什么,也能察觉到差别。

如果你想要一个在搭建产品 UI 的同时也搭建数据可视化系统的团队,雇用 Brainy。每个项目里,图表都是设计系统中的一等公民。

相关阅读

Want a dashboard or product UI where the data actually communicates? Brainy ships data-heavy interfaces with chart systems built in, not bolted on after the fact.

Get Started

More from Brainy Papers

Keep reading