这段时间在忙学校的SRT项目,关于信息检索可视化的。
本来打算用OpenGL做界面,后来导师说用Prefuse,恩,那是11月底,刚听说Prefuse,然后就各种百度、谷歌,CSDN上帖子也发了,发现没什么人用的·······尴尬啊!
虽然找到了Prefuse的官网,但除了源码包之外发现没什么东西,连文档都是在线版的,后来总算找到了chm格式的文档。
(文档下载:preuse-javadoc)
VeryGood!
国外人就是不一样,Prefuse的作者在FAQ里面列举了几个可视化工具,大牛看得上眼的,自然也是大牛~要是国内的,估计只会说我的东西最好!其他的都是垃圾~看来技术这一块,还是要“崇洋”啊!
下面列一下:
Piccolo - A Java toolkit for structured 2D graphics using a scenegraph abstraction.
地址:http://www.cs.umd.edu/hcil/piccolo/
Processing - A graphics library and IDE serving as an artist's digital sketchbook.
The Visualization Toolkit (VTK) - A 3D graphics and visualization toolkit.
地址:http://public.kitware.com/VTK/
JUNG - A Java graph processing and visualization library.
地址:http://jung.sourceforge.net/
The InfoVis Toolkit - A Java toolkit supporting a number of visualization techniques.
地址:http://ivtk.sourceforge.net/
Improvise - An application for end-user authoring of interactive visualizations.
地址:http://www.personal.psu.edu/
传几张官网上偷来的Prefuse效果图吧(其实土豆网上有个视频介绍的更好,但不够清晰)~
下面这两张是本人实际操作Demo时的截图:
下面来抄一份别人的prefuse笔记吧!(说明:下面内容摘自http://turmoilchaosif.iteye.com/blog/1219415)
prefuse是一个数据可视化的open source class library,我主要用它来可视化社交网络,我将在这里记下一些我摸索到的有意思的东西,与大家共勉。
1.Graph的边权重值与边长关联
刚开始我用的是RadialTreeLayout,一直在找直接或间接的设置边长的方法,都失败了;后来发现RadialTreeLayout的边长生成 与 选取节点后主要节点的转换有关系,所以放弃了使用RadialTreeLayout,转而使用ForceDirectedLayout,只需要覆盖掉getSpringCoefficient(EdgeItem e)方法即可自定义边长
2.数据源
我用的是GraphML格式的数据,这种标记语言不仅结构规范,而且可以轻松地添加自定义的节点和边的字段,它可以被GraphMLReader()直接读取,并转换为相应的数据结构。
至于GraphML的生成,既可以用DOM4J等API生成,也可以调用JGraphT中GmlExporter导出
3.汉字显示
prefuse是可以显示汉字的,需要在定义相应的组件的字体的时候使用如,FontLib.getFont("微软雅黑", Font.PLAIN, 16)
4.controls
prefuse.controls下是一系列封装好的控制功能,只需要在对Display的实例调用addControlListener(),传入所需的control,即达到目的。也可以通过ControlAdapter自定义所需的control。