正当人们准备喜迎庚子春节的时候,一种未知的病毒却悄然之间散播到世间,在2020年的一开头就为这一整年蒙上了一层阴霾。
病毒凶险,政府抗击病毒的决心不可谓不坚决,无论在疫情发布还是在数据公开上都前所未有地公开与透明。
作为阿里巴巴安全体验设计团队中专门研究态势可视化的设计师,我们不禁思考,可视化技术能否从这些海量的数据中挖掘出什么可用的信息,让人们进一步了解这种新型病毒,并对病毒引起的这种疾病的病程有所了解呢?
我们曾经设计了一套名为“跌落态势图”的通用可视化图表,目的是用来展示某一“事件”从发生到终结的状态及其趋势。那么这种可视化图表是否可以用来对COVID-19这种由新型冠状病毒引起的肺炎的病程态势进行分析呢?阿里巴巴安全设计团队的两位设计师对这一设想进行了一些尝试。
COVID-19 Patients Tracking 可视化看板地址:
http://covid-19.generativegraph.com
编号“1”是双轴跌落态势图中的两条结果轴,分别表现了事件的两种发展结果,分别是“治愈”和“死亡”。
编号“2”的纵轴则表现了某一天,在其上的点表现了在该日发生的事件,具体到发病-治愈维度,这两个点就表现了当天发病的两位患者,患者排列的先后顺序按照病人ID排序。在其后的曲线表示患者病程,曲线与“治愈”轴相交时,表示在该日患者已治愈,而继续向前延伸则表示这位患者尚在治疗中。
二、数据设计
设计之后,就需要考虑数据的来源,结构与清洗方案
,数据是态势可视化的核心。
既然我们决心从个体患者的角度出发,那么我们就需要寻找个体患者的数据,并且要关注这些数据是否有我们需要的维度,以及是否便于之后的跟进维护。
我们陆续从WHO和The Lancet寻找到了一些论文,发现其中披露的患者数据不足以支撑这次的看板制作。
直到我们找到了深圳卫健委公布的患者数据,这份数据非常详尽,而且深圳卫健委还对所有患者进行了连续统一编号,并进行了后续的追踪(出院情况公示),这为我们的态势可视化工作提供了极大的方便,向这些提供了丰富数据的一线工作者们致敬!
具体到这些数据的具体情况,它们来源于微博是标准的非结构化数据。实际上来说在一般情况下,同样的容量下结构化数据的信息容量要小于非结构化数据。因此不论面对何种数据源,作为可视化设计师基本的数据处理能力还是需要具备的。
在本案例里,主要使用开源工具Openrefine对源数据进行半自动的结构化和清洗。
三、实现
既然说到了实现,对于设计师而言,其实有很多相对没那么复杂的工具可以将自己的想法快速落地。比如低代码图形生成工具Nodebox,或者比较简单的图形编程语言Processing,以及它的Web衍生物P5.js。在这个案例中,综合考虑(交互性要求不高+基于Web端进行展示)之下,我们使用P5.js对看板进行了实现。
其中有三个实现的核心环节:
1.赋妄想以有型——将数据可视化为跌落曲线
跌落态势曲线是以「事件-时间」为对应关系呈现的可视化图形。因此我们将病例数据中要展示的事件节点映射到时间线(x轴)上,把被定义为起始事件的节点映射为跌落线的起点,把被定义为终结事件的节点映射为跌落曲线的落点,用贝塞尔曲线画出需要的曲线;然后将所有病例数据按设定的关系映射在垂直方向上。