打开导航 打开导航 Open menu
量化交易系统开发(C++)/ 期权策略与风控 / 行业研究分析
量化交易系统開發(C++)/ 期权策略与风控 / 行业研究分析
C++ trading systems / options strategy & risk controls / equity research
adrian@adrianxv.cn

A Design Space for Multiscale Visualization 论文阅读 A Design Space for Multiscale Visualization 论文阅读 A Design Space for Multiscale Visualization 论文阅读

论文:Mara Solen、Matt Oddo、Tamara Munzner,A Design Space for Multiscale Visualization

设计空间案例站:Multiscale Visualization Design Space

这篇论文讨论多尺度可视化的问题。很多可视化项目会同时展示不同几何尺度的信息,但设计者往往不清楚应该如何安排这些尺度、让用户如何在尺度之间切换,以及如何解释不同尺度之间的关系。

论文的主要贡献是提出一个多尺度可视化设计空间。它既可以用来描述已有项目,也可以帮助设计者思考现有项目还能怎样改进、扩展哪些设计维度。作者提出了一套包含 3 个主要维度和 8 个子维度的编码方式,并用 52 个学术和实践案例验证这套设计空间能否有效描述和生成多尺度可视化方案。

设计空间总览

背景:多尺度可视化为什么困难

多尺度可视化主要处理尺度差异很大的数据。地图就是一个典型例子:看一座城市时,我们关心道路网络、区域分布和整体路线;放大到街区时,我们关心路口、转弯和具体道路;再放大时,可能还会关注一个入口、一条人行道或一个公交站点。

如果把这些数据全部压缩到一个固定大小的屏幕上,通常会出现两个问题:最小的元素可能太小,甚至小到看不见;即使还能显示出来,也可能因为挤在一起而很难分清楚。

多尺度可视化要解决的就是这些问题。它让用户可以在整体和细节之间切换,也可以让多个尺度同时显示出来,既保留整体背景,又支持用户查看细节。更进一步,还需要回答几个问题:

  1. 用户放大或缩小之后,还能不能知道自己在什么位置?
  2. 不同尺度之间有没有清楚的对应关系?
  3. 多个尺度同时出现时,屏幕空间应该怎样分配?
  4. 如果这个可视化是给普通观众看的,是否需要用大家熟悉的事物帮助他们理解抽象尺度?

单独讨论某一种图表类型,很难覆盖这些问题。所以作者没有从具体图表入手,而是从不同尺度之间的结构关系出发,提出了一个设计空间。

设计空间详解

论文中的设计空间包括三个大维度:ScalesNavigationFamiliarity。它们分别回答三个问题:有多少尺度、尺度之间如何组织?用户如何在尺度之间移动?系统是否借助熟悉经验帮助用户理解尺度?

Scales:尺度如何组织

Scales 是整个设计空间中最核心的维度,因为多尺度可视化首先要说明“尺度”本身如何出现。

子维度含义设计意义
Count记录 totalsimultaneousseparate 三种数量描述一共有多少尺度、同一时刻可见多少尺度、这些尺度是否分离显示
Step size type尺度变化的步长类型说明尺度切换是固定的、由数据决定的、由用户选择标记的,还是用户连续控制的
Encodings不同尺度是否使用相同编码判断不同尺度只是范围不同,还是图形表达方式也发生变化
Association不同尺度之间是否有关联通过颜色、框选、连线等方式帮助用户理解跨尺度对应关系

其中 Count 尤其重要。作者将它拆成 totalsimultaneousseparate 三个部分。下面用几个典型组合说明三者的关系,它们必须满足 separate <= simultaneous <= total

Count 组合

5:1:1:单视图逐级缩放

系统总共有 5 个尺度,但一次只能看见 1 个;这个尺度当然也是独立显示的 1 个。

Count 5:1:1:单视图逐级缩放

2:2:1:同屏遮挡嵌入

两个尺度都在屏幕上,所以 simultaneous 为 2;但局部放大区域遮挡了另一个尺度,只有 1 个尺度可算作 separate

Count 2:2:1:同屏遮挡嵌入

6:3:3:三层分离视图

总尺度有 6 个,当前同时展示其中 3 个,并且这 3 个互不遮挡,所以 simultaneousseparate 都是 3。

Count 6:3:3:三层分离视图

4:4:4:全部同屏分离

可访问的 4 个尺度都同时出现,且各自占据独立空间。它适合强调跨尺度比较,但会占用更多屏幕面积。

Count 4:4:4:全部同屏分离

9:3:3:多总尺度、少量同屏

可访问尺度很多,但界面只选择其中 3 个同时展示;如果这 3 个彼此分离,则 separate 也为 3。

Count 9:3:3:多总尺度、少量同屏

∞:6:6:无限总尺度、有限同屏

total 可以是无限,例如递归探索或连续缩放空间;但屏幕容量有限,所以 simultaneousseparate 仍然可以是具体数字。

Count ∞:6:6:无限总尺度、有限同屏

Association:不同尺度如何关联

一个局部放大图需要通过框选区域、连接线或共享颜色来标明它和原图的对应关系,这样用户才能更快看出两个尺度之间的联系,减少来回匹配的理解成本。Association 可以进一步拆成四种典型做法。

none:没有显式关联

不使用 marks 或 channels 展示不同尺度之间的对应关系。即使两个尺度并排出现,它们之间也没有显式视觉提示,用户只能依赖记忆或空间推断。

Association none:没有显式关联

marks:用图形标记关联

通过连接线、框选、箭头等图形标记明确说明两个尺度的对应位置。论文中的 Rivet 就使用线来关联高低层级。

Association marks:用图形标记关联

channels:用视觉通道关联

通过颜色、亮度、纹理等视觉通道表达对应关系。图中用绿色通道和两条放射状直线把 overview 中的目标矩形与 detail 中的矩形相连。

Association channels:用视觉通道关联

both:标记与通道同时使用

同时使用 visual channels 和 marks。颜色提供持续一致的身份提示,框线和连线提供空间定位提示,论文中的 DeLVE 属于这一类。

Association both:标记与通道同时使用

Navigation 描述用户是否能够改变当前观察的尺度,以及这种改变通过什么方式完成。

子维度选项含义
Typenonezoomzoom/pan用户不能导航、只能缩放,或既能缩放又能平移
Modedigitalphysical用户通过鼠标、触控等数字交互导航,或通过身体移动完成导航
Visceral timeyesno是否通过时间流逝或缓慢转场让用户感受到尺度距离

大多数交互式多尺度可视化都使用 digital navigation,也就是通过鼠标滚轮、拖拽、点击或触控来移动和缩放。论文也提到了 physical navigation 的价值:可视化展示在大屏幕、墙面或实体空间里时,用户可以通过走近、后退、移动身体来改变观察尺度。相比数字缩放,这种方式有时更容易让用户保持方向感,因为用户在移动时仍然能看到周围环境和整体画面。

Visceral time(体感时间)更常出现在展示型作品中。比如 Powers of Ten 的画面以芝加哥湖畔野餐的男士为中心(10⁰ = 1 米),摄像机镜头每隔 10 秒向外拉远一个数量级(10 倍),展示范围依次扩大为 10¹(10 米)、10²(100 米),直至深空(10²⁴ 米),让观众在观看过程中感受到尺度跨度。对于分析任务来说,这种等待可能会影响效率;但对于科普展示来说,它可以增强观看体验,让观众更直接地感受到尺度变化。

Powers of Ten

Familiarity:如何让尺度变得可感知

Familiarity 关注系统有没有用用户熟悉的东西来解释尺度。论文里最主要的子维度是 concrete,也就是是否使用具体、熟悉的对象作为参照。

xkcd 的 Money 是一个典型例子。它把不同金额放在同一张图里比较,并用很多具体项目帮助观众理解,比如个人消费、公司收入、政府预算、慈善捐款和大型经济事件。这说明了为什么 Familiarity 更多出现在 presentation 场景,而不是 analysis 场景。分析型用户通常已经有领域知识,无需日常参照;但展示型作品面对的往往是普通观众,所以需要用熟悉的例子帮助他们快速建立尺度感。

xkcd Money:用具体事物解释金额尺度

四种多尺度可视化策略

论文从 52 个案例中总结出四种高层策略。这些策略可以看作设计空间中的常见组合,每一种都对应一类多尺度组织方式。

四种多尺度可视化策略

Single-View Pan and Zoom

Single-View Pan and Zoom 是最常见的多尺度方法。它包含多个整体尺度,但同一时间通常只显示其中一个尺度,用户需要通过缩放和平移在不同尺度之间切换。地图、时间线、层级树和程序执行轨迹等系统都可能使用这种方式。

这种方法的优点是节省屏幕空间,界面也比较简单,用户可以把整个屏幕都用来查看当前关注的尺度。问题也很明显:一旦用户放大到某个局部,整体背景就会被挤出屏幕,用户容易不知道自己现在看的是整体中的哪一部分。对于分析任务来说,如果用户需要经常在整体和细节之间来回切换,这种方式会增加操作成本。

最常见的电子地图就是例子:用户可以随意拖拽、缩放查看想去的地点,但如果放得很大,可能就不知道自己正在看哪里了。

Single-View Pan and Zoom 的设计空间

地图数据示例

Simultaneous Occluding Embed

Simultaneous Occluding Embed 指多个尺度同时出现,但它们不是多个分离视图,常见形式是在同一个视图结构中叠加嵌入、透镜或局部放大窗口。

这种策略的优势是上下文和细节可以同时存在,而且局部视图通常贴近它所对应的位置。问题是遮挡:放大窗口会覆盖原图的一部分内容。游戏小地图就是很多玩家熟悉的例子。

游戏中的小地图:一种遮挡式内嵌思路

Simultaneous Separate Multilevel

Simultaneous Separate Multilevel 把多个尺度同时显示出来,但每个尺度放在不同的视图里。例如左边放整体 overview,右边放局部 detail;或者把不同时间粒度的 K 线图上下排列。它可以理解为 overview + detail 的一种多尺度形式。

这种方法方便比较和定位。用户既能看到局部细节,也能看到这个局部在整体中的位置。如果再加上高亮框、连接线或共享颜色,不同尺度之间的对应关系会更清楚。缺点是占用更多屏幕空间,而且多个视图之间需要协调,设计起来也更复杂。

Simultaneous Separate Multilevel 的设计空间

Familiar Zoom

Familiar Zoom 依赖缩放和熟悉参照来帮助用户理解尺度,常见于面向公众的展示作品,例如宇宙尺度、细胞尺度、金额尺度和历史时间尺度。这种策略重点放在帮助观众理解“这个尺度到底有多大”,强调熟悉对象、渐进式揭示和体验感。

我的复现

复现一:K 线时间粒度多尺度可视化

由于我个人对交易比较感兴趣,手头也有 K 线数据,因此选用了不同标的的 K 线数据进行可视化。这里提供了若干维度的比较:首先用户可以跨品种对比,这在实际交易过程中非常常见;其次在同一个标的内部,用户可以比较不同时间级别的 K 线表现,这对于投资者过滤信号、选择合适的交易策略也很重要。

这里提供了三种可视化策略:

  1. 单视图平移缩放。
  2. 分离式多层级并列。
  3. 遮挡式内嵌放大。

Single-View Pan and Zoom

这种策略的特点是让用户在一个视图中平移和缩放,当前只显示一个尺度;对应的设计空间如下。

K 线单视图平移缩放对应的设计空间

Simultaneous Separate Multilevel

这种策略把不同时间粒度的 K 线分开排列,方便投资者对比。每个品种的不同时间级别上下排列,用户可以上下进行对比。

K 线分离式多层级并列对应的设计空间

K 线分离式多层级并列复现

Simultaneous Occluding Embed

这种可视化策略的特点是副图直接叠在主图上面,局部细节贴近原位置显示,但会遮挡一部分主图内容。

K 线遮挡式内嵌放大对应的设计空间

K 线遮挡式内嵌放大复现

基础版本可以是单视图 K 线图,用户通过缩放或切换时间级别查看不同尺度。进一步的版本可以显示多层级并列视图,例如上方是日线,中间是小时线,下方是 15 分钟线。用户在高层级中选择某个时间区间后,低层级视图同步显示该区间内部细节,并用高亮框或共享颜色表示不同时间粒度之间的对应关系。

这个复现体现了论文中关于 EncodingsAssociation 的讨论。不同尺度的 K 线可以使用相同编码,以减少学习成本;也可以在高层级中加入趋势线、成交量概览等不同编码,让高层级更适合发现趋势,低层级更适合分析细节。

复现二:地图 / 路线多尺度可视化

地图数据足够灵活,很适合用来比较不同的多尺度可视化策略。本部分用同一份路线数据实现了三种策略,也回应了论文中 Hierarchical Route Maps 的 missed opportunity:原系统主要依赖单视图缩放,如果增加持续可见的全局尺度,可以帮助用户在查看局部细节时保持方向感。

我使用地图数据进行了 Single-View Pan and Zoom、Simultaneous Separate Multilevel、Simultaneous Occluding Embed 三种可视化。

Single-View Pan and Zoom

Single-View Pan and Zoom 类似普通电子地图,同一时间只显示一个尺度。它的优点是交互自然,问题是放大后容易丢失整体位置。

路线图单视图平移缩放示例

路线图单视图平移缩放对应的设计空间

Simultaneous Separate Multilevel

Simultaneous Separate Multilevel 使用 overview + detail,把全局路线和局部细节分开展示,适合观察局部与整体的关系。

路线图分离式多层级并列对应的设计空间

路线图分离式多层级并列复现

Simultaneous Occluding Embed

Simultaneous Occluding Embed 在主地图上嵌入局部放大窗口,能贴近原位置显示细节,但会遮挡一部分地图内容。

路线图遮挡式内嵌放大对应的设计空间

路线图遮挡式内嵌放大复现

Association 设计

除了三种地图多尺度策略外,还可以把 Association 作为独立变量,观察不同尺度之间的对应关系是否清楚:

  • none:不额外标记局部区域和全局路线的关系,用户只能靠地图位置和路线形状自己判断。
  • marks:用框选、连接线等图形标记指出局部视图对应全局地图中的哪一段。
  • channels:用相同颜色或高亮样式标出同一段路线,让用户通过视觉通道识别对应关系。
  • both:同时使用图形标记和颜色高亮,既说明空间位置,也说明路线身份。

Association 会影响用户在多尺度地图中是否容易判断“我现在看的局部到底在整体路线的哪里”。

复现三:金额尺度 Familiar Zoom

金额尺度复现属于 presentation 型场景,主题是“中国当代消费 / 财富尺度”。左边用对数轴展示金额的数量级,右边用大家熟悉的购买力例子解释每一档金额,再用连接线把左右两边对应起来。

图里的金额从 1 元一直到 1 万亿元。左边按照 10⁰、10¹、10² 这样的数量级排列,右边对应一些现实中的消费或财富参照。重点是把抽象金额和现实购买力放在一起,让观众更快理解不同金额大概意味着什么。

这个设计最关键的是具体事物参照。金额本身只是数字,不够直观;但如果把它和日常生活里的东西联系起来,观众就更容易理解不同数量级的差别。

金额尺度 Familiar Zoom 复现

总结

《A Design Space for Multiscale Visualization》提出了一个用于分析和生成多尺度可视化的设计空间。它用 ScalesNavigationFamiliarity 三个维度描述多个尺度之间的组织、移动和理解方式,并从 52 个案例中总结出四种策略:Single-View Pan and ZoomSimultaneous Occluding EmbedSimultaneous Separate MultilevelFamiliar Zoom

当我们面对地图、K 线、金额尺度这类跨尺度数据时,可以先用设计空间编码现有方案,再判断是否需要增加 overview、局部放大、关联标记或熟悉参照等设计维度。这样既能更有条理地分析一个可视化系统,也能把“我想让用户看懂不同尺度”转化成具体的设计决策。