可读写可视化的设计阐述(Design Exposition with Literate Visualization)

本文提出了一种易读可视化的概念,作为一种新的可视化设计与交流的方法。这种方法能够将编写数据可视化代码的过程与导致实现(设计说明)的设计选择的描述集成在一起。本文首先探索了四种针对不同用户的可视化设计的模型,包括评价者,自主设计者,说教者,以及理性主义者。易读可视化的关键点在于,文档集成了实时编码的输入,输出的呈现与文本描述。该方法编写文本描述的成本较低,鼓励结构化可视化设计以及文档书写。本文提出了一个新的开放源码的可视化环境,Litvis,它基于通过功能编程语言ELM与可视化的描述性语言Vega和Vega-Lite的声明性接口相结合。

可视化作为一门学术学科和一种实践,除非我们有能力从先前的可视化工作中汲取经验教训,否则无法取得进展。反过来,这要求我们能够捕获并共享可视化设计的过程以及驱动它的理论。如果这样做的成本太高,或者实现的方式不明确,我们就有可能在重复错误或投入不必要的努力来重塑既定的良好实践时陷入停滞。我们提出了一个解决方案来解决这些问题,包括使用新兴的“计算笔记本”模式。可读可视化是可视化设计和生产的一种方法,它不仅包括创建视觉组件,还包括使用与生产并行的轻量级文档围绕设计过程生成叙述。它为这样做提供了高度的灵活性,同时允许应用结构来指导这个过程。

Donald Knuth提出,应被视为人与人之间交流的一种方式,而不仅仅是程序员与计算机之间的对话。他提议编写包含代码以及说明的综合文档,其中既包含为人类理解(weaving)而创建文本的说明,也包含要编译为低级机器说明(tangling)的常规源代码。

本文所提出的易读可视化(Literate visualization)可以看作是一种讲故事的形式,在这种形式中,一些可视化的设计者不仅指定了它的实现,而且还指定了实现设计背后的基本原理。因此,它是文本叙述和更正式的实现规范(如可执行编程指令)的紧密耦合。重要的是,这种耦合不应该仅仅停留在简单地在文档中回顾性地表达,而是在可视化设计到实现的过程中强调的转变。从这个意义上说,它可以被看作是Donald Knuth的的延伸(LP)及其最近的数据科学框架的一种形式。

LV(lineage visualization)和LP(lineage programming)之间的一个关键区别是,在可视化上下文中,叙述往往集中在可视化设计、基本原理和效果上,而不是其实现机制上。这也有助于将lineage visualization与数据科学计算叙事区分开来,强调数据分析和解释。或者使用设计活动框架的语言,在这个框架下,“为什么”会成为“比如何做”更重要的一个方面。

构建可视化涉及一组设计选择和遵循这些选择的实现。这些设计选择被表达出来的活动,无论是由设计师自己、其他设计师、可视化的潜在用户还是更广泛的社区,我们称之为设计集合(design exposition)。本文探索了四种不同的用户的可视化设计的模式,包括评估者(The evaluator),自主设计者(The autonomist),说教者(didacticist)以及理性主义者(rationalist),四类用户的可视化设计模式如下图所示,下图的横轴代表的是用户设计的时间,纵轴代表的是用户每次设计所需要的努力。

四种可视化设计的模型

根据上述四种图,本文将上述四类用户在一个坐标系中展现,其中横轴代表的是设计的频率,纵轴代表的是设计集合中每次设计的努力。如下图所示,其中自主设计者为一类,属于设计频率高,但是每次设计的努力较小的用户。其他的三类用户属于同一类,属于设计的频率低,但是每次设计的的努力都较大。在下图所示的坐标轴上,右上角的区域位置处所需要的可视化设计的努力较大。

可视化设计指标的坐标系

为了支持并行公开和丰富的可视化表达式,我们开发了Litvis——一个编码和叙述集成开发环境,作为Atom(https://atom.io)和Visual Studio代码(https://code.VisualStudio.com)编辑环境的插件运行。输出可以导出为独立的HTML或PDF文档,并且其体系结构也可以嵌入在线的Web工具中。Litvis的软件和源代码,都用typescript和elm编写,可从http://litvis.org获得。Litvis的设计是由我们对识字编程的评估和支持低摩擦设计说明的需要驱动的。具体来说,一个有文化的可视化文档编写环境应该:

  • 在代码开发和叙述同时发生的地方使用活动文档,这鼓励了可视化设计文档的快速迭代。
  • 快速且易于编写,与传统编程环境相比,使用起来不费吹灰之力。使用经济性来鼓励成本,包括有意义的阐述的提示;
  • 探索替代设计和实施的便利性以及非线性阐述。
  • 提供现场反馈以鼓励反思和迭代。这包括可视化的呈现、代码的整理、格式化的输出、设计验证反馈和分支叙述的表示。

下图所示为litvis的编写环境以及使用方式,左侧为litvis的代码,支持文档,可视化描述性语言,右侧为对应的可视化以及可视化设计的决策过程。

litvis编程界面设计

通过开发Litvis,本文创建了一个可视化程序和可视化设计决策的文档的编程环境,体现了我们的易读可视化的思想,与“计算变成”的出现相兼容,作为编码和分享叙述的一种方式。虽然我们在可视化研究和实践方面作出了贡献,但它可以支持任何以非线性实验为特征的设计过程,从捕捉设计过程中获益,以及设计师在构建描述其实践的叙述时寻求指导。

 

 

 

 

 

评论关闭。