我有兴趣将protovis javascript可视化库移植到python以用于科学计算。我有一个普遍的问题和具体的问题。
概述:我以前从未移植过整个图书馆。什么是好策略?我应该首先实现面向用户的API,然后以pythonic方式填充它吗?或者最好先尝试移植内部/基础架构,然后在其上重建API?
具体:这个库似乎大量使用javascript的基于原型的继承,这与python模型有些不同。我发现有人制作了一个非常简单的方法来模拟python中的prototypal-inheritance。但是,从移植库的角度来看,我宁愿不用手臂扭曲python来更像javascript。任何关于这个问题的反馈将不胜感激。谢谢!
乌里
答案 0 :(得分:1)
你最好不要看Prefuse(http://www.prefuse.org)或Flare(http://flare.prefuse.org)。前者是基于Java的,后者是Flash。
Protovis有点不同,因为它是运行浏览器的普通旧Javascript,使用SVG作为画布。你不可能在Python重写中轻松利用它。
如果您正在使用图形/网络可视化软件包,您可能需要查看NetworkX: http://networkx.lanl.gov/
答案 1 :(得分:1)
如果你想从C / C ++移植到python,你可能想要使用swig。我不知道javascript到jthon,但你可能需要手工完成。我会考虑python unpythonic中的原型继承。我不建议使用链接中给出的元类黑客。 Python程序员不习惯继承原型,可能不想使用它,在使用元类时你应该非常小心。因此,我认为重新设计继承模型时最好。我还认为对API的重新设计不会让它变得更加pythonic。
答案 2 :(得分:1)
Python生态系统目前缺少像Protovis这样的可视化工具,请继续并祝你好好重写!