迄今复现过最复杂的可视化作品之「大西洋古抄本」(下)

上篇文章迄今复现过最复杂的可视化作品之「大西洋古抄本」(上)里讲到复杂交互一直是古柳的瓶颈。
链接:www.codex-atlanticus.it/#/

其实有想通过啃一些作品的源码来进行补强,比如:新加坡联合早报的作品「狂想鸡尾酒 配方关系知多少」,交互就蛮复杂,如果能搞清楚实现方式、将代码完全吃透,古柳觉得大概就真的算入门可视化实现了。

再比如,poppy field 这个用罂粟花作为视觉元素来可视化过去100多年里在200多场战争中失去生命的人数的作品。

一年前古柳就”一顿暴改“过其源码,“翻新”过原始老旧的实现方式,勉强跑成功可视化部分,并且在「年更博主冒个泡,或将开启可视化之旅 - 2020.08.27」一文里就有提到。
链接:https://weibo.com/3184350444/J4XyHajVq

只不过一直没进一步理解消化,所以像这些 button 按钮、slide 滑块等很基础的可视化组件如何组合到一起进行数据过滤并使得可视化部分产生变化,都没太多实践。一年过去了,依旧没啥进步,听起来就挺离谱,但却是事实(不愧是可视化混子)。

其实古柳也好奇大家都是怎么学的,感觉啃优秀作品的源码自然能学到很多,但每个作品代码风格、实现方式等都非常不同,而且可能杂糅很多可视化之外的内容,啃起来难度并不小。

当初古柳在 GitHub 创建 「dataviz in action」 这个针对优秀可视化作品进行翻新复现、代码实践的仓库,初心也是希望能把不同作品里不同的实现在消化吸收后用相对统一的方式进行复现,这样其他人再去上手学习或参考,难度就能降低很多,而且不至于看了 D3.js 相关的书本和视频,只会些简单图表,离实现优秀可视化作品还有很大的鸿沟,需要自己花很大力气去阅读和踩坑每个作品的源码。此时如果有人统一复现这些作品,并配套实现过程的讲解文章,大概就会很有帮助,不失为很有意义、很有价值的一件事。
链接:https://github.com/DesertsX/dataviz-in-action

然而理想很丰满,现实很骨感,古柳自己去啃优秀可视化作品的源码,也越来越有些力不从心,自己的水平并不高,想迈过那一个个的鸿沟同样很困难;而且有时候痴迷的作品只有静态图片和一些文字说明,压根没有源码,但实在很喜欢就硬着头皮去尝试复现,然后果然被打脸并极大地受挫,比如群友们可能知道的 Nadieh Bremer 的太空卫星相关可视化作品,之前尝试过后也是实现效果很差。
链接:https://twitter.com/nadiehbremer/status/1329094514586263552

用纯D3.js/原生JS等复现作品可能暂时都不会有多大提升,瓶颈无从突破,但另一方面,古柳心中似乎觉得还有一根救命稻草,那就是 Vue+D3.js 的组合拳,复杂的交互或许可以借助 Vue 框架来降低实现难度。

其实去年听 Shirley WuData, Design, Code 这个分享里提到她用 D3+Vue+GreenSock 这三个工具来进行开发,以此充分利用每个工具的优点,这样就能用最少的代码、最快的速度实现出可视化作品。
链接:https://www.bilibili.com/video/BV1V7411S7k9
链接:https://shirleywu.studio/talks/data-design-code/#/title

虽然古柳一直在 D3.js 那打转,对 Vue 框架没那么熟,更做不到结合起来进行开发,但那次的分享却从此记在了心中,也有了个目标与方向,希望哪天也结合起来用好这三个工具进行复现或开发。

Vue 框架虽然不熟,但去年也学过些基础,7月底时照猫画虎拿来搭个工事中相关的简陋后台,但真到上 Vue CLI、用 Vue 全家桶进行开发时就止步了、也就没太多掌握。
链接:https://weibo.com/3184350444/JdkFjqkQl

直到大概4月中旬,古柳听了某个电台广播的内容(就不说是哪个了),想到自己一直前端、后端啥都也不懂,菜得抠脚,于是垂死病中惊坐起,觉得真的要好好学扎实些 Vue 框架,这样真要开发些啥时也方便得多。

于是后面重新看起 Vue 基础,想着做些啥,也就有了五一前后用 Vue+VivaGraph.JS 做B站推荐视频网络图这事,虽然可视化部分和 Vue 结合的非常不好,但姑且先实现出来了,详情见:「爬取4百万数据只为画个B站推荐视频网络图(上)」
链接:B站相关推荐视频网络图可视化(demo尝鲜)

再后来终于开始看些 Vue+D3.js 的例子,从完全在 mounted 钩子函数里用纯 D3.js 的实现方式,到更多地利用 computed 计算属性和 methods 方法等,似乎一点点找到两者结合的感觉,逐渐熟悉了起来(虽然之后一段时间没看又忘光了)。

其中动态树图(注释插图也是特别漂亮。非常喜欢)和技能树这两个例子都挺小巧可爱的,还有其他例子或许可以一起整理出来写篇文章后续分享下。
链接:SVG 和 Vue.Js 构建动态树图
链接:Building a Dynamic Tree Diagram with SVG and Vue.Js
链接:Making a Skill-Tree With D3 and Vue


另外五月上旬就有一茬没一茬地看过 「大西洋古抄本/codex atlanticus」 的源码,也发现一些感觉挺奇怪的写法,并在群里问过群友。


不过那时还是完全啃不动那么完整且复杂的 Vue 实现的源码,于是先放下了。

后面继续补补基础,然后看了些免费的、付费的 Vue 全家桶开发移动端 App 等课程,对 Vuex 的用法、组件化开发的方式等都稍微熟悉后,才终于立起 flag 说想复现 「大西洋古抄本」 这个作品,啃啃源码看看都是如何实现的。其实一开始心里也没底,但公开定个小目标,而非不声不响地进行或许更有可能最终成功吧,于是也在群里/朋友圈等地方说了下。

中间虽然也曾因为从打包编译的文件里抽取原始数据时想当然尔的把一个对象数据弄成数组数据,而导致碰上奇怪的bug、折腾了很久。


但总体来说,算是相对顺利地将这个页面各部分组件都照着源码实现了遍,也大体搞懂了整个流程是怎么运作的,也第一次实现了较为复杂的交互效果,而且还是首次系统啃 Vue 相关的源码。

真的感觉学到了许多,似乎也突破了些复杂交互的瓶颈,明白了一些地方到底应该怎么实现。满是感慨也和群友老涂谈起“复杂项目拆分成各种小组件,啃起来方便的多,比以前那些d3的一坨的真的好下嘴的多“。


当然由于整个代码相对还是较为复杂的,写成一篇或几篇文章可能也仍无法真的讲清楚源码,毕竟古柳还从没写过讲解 Vue 实现的作品源码的文章,所以后续要如何尽可能进行分享,目前也还没想清楚,具体就看后续具体如何输出好了,敬请期待。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,847评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,208评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,587评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,942评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,332评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,587评论 1 218
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,853评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,568评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,273评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,542评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,033评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,373评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,031评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,073评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,830评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,628评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,537评论 2 269

推荐阅读更多精彩内容