居振梁[暴龙]

居振梁[暴龙]的博客

他的个人主页  他的博客

AS3独当一面:AIR演绎 Visualizing Data

居振梁[暴龙]  2009年09月11日 星期五 02:36 | 1670次浏览 | 14条评论

后续章节不再这里发布,感兴趣的请移步源链接:http://wargrey.yo2.cn/2009/09/11/36160/

在这个到处都是信息的时代,我们无论主动被动都会时不时接收到若干的数据集合,如何理解这些数据往往依赖于接收者的知识技能背景,但是这个不是非常重要,因为好奇心总是会驱使着人们去尝试些有挑战性的工作。于是“数据可视化”正逐渐成了越来越多的人理解、交流获取到的数据集的一个必不可少的过程。

正是基于以上原因,我开始看《 Visualizing Data 》 这本书,尽管我的候选方向不包括“计算信息设计(Computational Information Design)”。如你所见,我的知识背景是程序设计,跟艺术没有关系,这便是我想澄清的一点,关于“数据可视化思维”。由于“数据可视化”多少涉及到一 些图形图像方面的知识,于是有人认为这应该由艺术系的人去搞,至少搞这个需要艺术细胞,他们可能还会再给出一些诸如“没有艺术细胞,即使会操作 PhotoShop也很难作出优秀的图”之类的理由。但我想说得是,这个完全是两个抽象层次的概念,互相促进又互相正交:“数据可视化”的核心是how“ 可视化”,而所谓需要艺术细胞的那些活则是“可视化”what,所以“数据可视化”一样需要计算机方面的知识,甚至可能还需要计算机图形学乃至 数学 知识, 是不还需要“计算机逻辑细胞”?!

罗嗦了一大堆,该回到主题上了。之所以会出现此文,是因为我感觉《Visualizing Data》还是有些让人不尽人意的地方。比如,作者使用的教学语言是他自己发明的 processing , 这一简单的 编程 环境和API,之所以不选通用语言如python,java等,我猜原因就是上面分析中涉及的,读者的知识背景比较多样,不一定都具有编程 基础。但是,不得不说……基于java的本地 gui 程序在我的 linux 系 统上一直表现极差,比如本书相当于的“hello world”例子就总是让我死机,因此对java产生偏见了(要知道java也是我曾经最喜欢的语言之一),所以……我删了processing。转而选 了flash/air/actionscript3.0,这个号称在图形前端表现开发上处于领先地位的 编程语言 (当 然这个是我的老本行,尽管以前很少使用 图形api);另一方面,虽然本书对如何获取、理解数据都介绍的比较详尽,但是在how编程这点上让我云里雾里的,这个大概是因为processing本 身是带了源码的,看源码就能一目了然的缘故吧,总之没有考察这点。而且语言之间多少有点差异,况且flash的普及度更高一点,一方面自己按照要求全部实 现本身就是一个很好的学习过程,一方面刚好可以和大家分享。

所以本系列文章就按章节分享书中实例的AIR1.5/ActionScript3.0实现。当然,我并不想原封不动的翻译processing代 码,而且与“可视化”这个目的没有直接关系的部分也不予细究,比如如何生成随机数等。这里跟大家说声抱歉,毕竟这个学习过程在我的方向上只是一个支线。在 具体的文章里,与书中代码差异交大的部分我会特别说明的,而且我的as3代码可能没有注释,因为代码本身就很容易理解(不考虑我们所喜欢的代码风格差异)。

评论

我的评论:

发表评论

请 登录 后发表评论。还没有在Zeuux哲思注册吗?现在 注册 !
王依依

回复 王依依  2009年09月12日 星期六 23:11

matplotlib 不错, 绘图起来更简单
那本书恰好之前在图书馆阅览室翻过

9条回复

  • 居振梁[暴龙]

    回复 居振梁[暴龙]  2009年09月12日 星期六 23:15

    之前确实是考虑过python的,不过我更喜欢原生特性比较强的语言。
    是要依赖第三方库或框架的东西都不会优先考虑,当然,python的绘图能力本身也不差。

    且还有很多专门干这行的呢,比如gnu plot、matlab等一堆的东西

    8条回复

张宇杰

回复 张宇杰  2009年09月11日 星期五 14:54

对processing很有兴趣
准备也搞一本看看
BTW:processing在我的linux上运行很好。

1条回复

李迎辉

回复 李迎辉  2009年09月11日 星期五 08:42

好象有人开发了js下的processing库,是不是有可能用一下。另外 http://raphaeljs.com 不知道是不是有用。

1条回复

暂时没有评论

Zeuux © 2024

京ICP备05028076号