基于Python的数据可视化网页可视化编程接口
我刚发现了impure.com,真的对它在数据可视化方面的能力感到很惊讶。虽然这个平台可以免费使用,但还不是开源的。这就带来了一些问题,因为它的API部分只能和.com的网站一起使用,比如eBay,所以我无法在像ebay.in这样的地区网站上可视化eBay的商品,因为它的链接是固定指向ebay.com的。
我到处找了找,但没找到其他项目能以类似的方式与网站的API和其他数据源合作,并且在浏览器窗口中提供像impure.com那样的用户界面和实时细节。
这让我想到了一些问题:
要创建一个类似的项目需要哪些技术?
有哪些开源工具可以帮助开发一个全屏的用户界面来展示工作空间?有没有替代Flash的工具,它们之间的比较如何?
目标是使用标准的Python数据结构,编写Python脚本对这些数据结构进行处理,编写脚本从CSV、JSON和API源(比如Google、Yahoo、维基百科和Flickr)收集数据,以及编写脚本来绘制图表、标签云、网络可视化等。然后把这些都整合到一个支持拖放和简单类型检查的可视化界面中。
Python的后端如何与用户界面结合?
抱歉问题有点杂乱,但我想尽量提供更多细节。我只是想为了好玩而做这个。
1 个回答
简单来说,Impure就像是OpenDX,不过是在浏览器里运行的,你想要一些建议来搭建自己的网页版?
我建议你使用Cappuccino作为前端的网页界面。这是一个工具包,可以让你在浏览器里创建完全基于HTML和JavaScript的富互联网应用(RIAs),而不需要用Flash。它的设计灵感来自苹果的Cocoa,所以你可以用它构建一些非常复杂的应用。
在服务器端,我会使用Python与OpenDX的绑定来创建一个可以被浏览器访问的JSON API。需要注意的是,这个Python模块使用了DXLink,主要是一个批处理/命令接口来与OpenDX交互——你可能还需要做一些工作才能把可视化结果从OpenDX传回浏览器。不过,既然都是开源的,这应该是可行的。这里有一个讨论,其他人也在尝试做类似的事情。
我不确定OpenDX是否支持通过网络服务调用来获取数据,但你完全可以在Python这边处理这个问题,然后把数据传给OpenDX。
另外,我没有提到Python的网络框架,因为你的应用主要是一个JSON API,几乎任何框架都能用。我建议你选择一个最简单、最轻量的框架,看看哪个对你最合适。