简介

交互的目的

在可视化中,为什么要有交互,让用户一次性看到所有数据岂不更简单?

有几个原因导致我们不得不在图表上增加交互:

从用户的角度来看,在可视化的场景中添加交互可以带来以下好处:


交互带来的问题

所谓的可视化本质上是一种让用户更容易理解数据的手段,交互本身在用户分析数据时会降低同一时刻用户看到的信息量,会降低用户认知的负担,但是同时也会带来很多问题:


影响交互效果的因素

除了上面的问题外,在设计交互的时候,交互效果也受限于其他几个因素:


正因为交互是必不可少,同时也会带来大量问题,所以我们需要详细的分析一下目前可视化上支持的所有交互类型


交互的分类

可视化中从展示数据到用户观察数据,需要从三个角度思考用户可能存在的交互行为:


数据定义

确定哪些数据展示,是可视化过程中首先需要思考的问题,作为可视化的设计者来说可以通过编程的方式实现对数据进行处理,但是如果用户希望对数据进行多个维度的分析,对数据有充分的掌控权,就需要提供各种交互方式,让用户自己确定哪些数据展示,哪些数据隐藏,甚至派生出新的数据视图。

在这个过程中常见的交互方式有:

这些交互方式的实现多种多样,如何在合适的场景实现合适的交互是非常大的挑战


可视化编码

可视化通过图形的属性映射来展示数据,一般通过位置、颜色、大小、形状作为视觉通道对数据进行映射,我们常见的数据格式加工(数字到字符串、日期格式变化)、布局(调整位置)也归类到这个类别。实现可视化编码的交互有:


过滤

过滤主要对数据的量进行调整,可以将局部数据显示在更清晰的视图下,主要的实现方式有:




框选图形进行筛选和通过图例进行筛选放到操作画布时讨论


排序

排序时另外一种调整数据的方式,好的排序能够让用户更加清晰的对数据进行分析


在可视化中实现排序的方式:

注意:排序有时候会带来问题,例如:存在顺序的分类、时序数据表示 x 轴时,不要按照数据或者其他字段进行排序,以免引起误解。


派生

当输入的数据不满足展示需求时,会对数据进行调整,包括:


这些数据调整一般通过编程的方式在可视化前进行,但是越来越多的场景需要用户自己控制如何进行数据加工,以便于更好的理解数据。


视图操作

数据通过图形显示在画布上后,为了了解更多的细节经常会进行下面几种交互:


选中

选中数据的方式有很多,可以:


选中数据时图形会高亮,也会触发过滤、展示细节等进一步操作,也可以使用右键菜单等方式触发其他操作。


导航

在可视化场景下导航是根据某个字段进行连续的变化,例如:

另外,用户在画布上进行连续操作时,标识节点状态、显示节点详情也在这个分类的范围内


坐标系调整

在可视化中我们所说的坐标系调整主要是指两方面:

在多个视图下的交互需要同步,例如:


重组织视图

目前越来越多的系统开始支持用户自己决定几个视图,视图如何摆放,但是这已经不仅仅是可视化的范畴,所以在这里不多讨论。


过程

可视化过程中,如果给用户提供了各种各样的交互,如果不对过程进行记录,允许用户查看操作记录、进行前进后退操作、在操作过程中进行引导,用户非常容易在繁杂的交互中不知所措,很容易会进行页面刷新,重新初始化页面。过程的交互有下面几种:


记录

越复杂的交互场景下,越需要记录用户的操作轨迹,经常有几种应用场景:


标注

用户可以在图表上添加一些标记


共享和协作

用户在操作过程中的中间过程可以分享,分享的方式有多种:

以 datawrapper 为例,这两种功能都提供:https://www.datawrapper.de/


导引信息

复杂的交互需要对用户进行教育,主要考虑三种场景:


总结

本章介绍了可视化中的交互目的和各种分类,没有介绍具体的实现细节,在不同的场景需要精心的进行设计,另外也没有讨论一个新的可视化领域: story-telling 中的交互。