哪些算法适合交互式/实时图形绘制?

时间:2008-12-05 23:57:32

标签: graph-layout graph-drawing information-visualization

哪些算法适用于实时数据和直接操作的交互式/实时图形绘制?

失败 - 你用什么库来绘制图形?

建议;

  • Prefuse信息可视化工具包
  • 其他人吗?
BTW-我的意思是图论理论中的图形 - 点和线

  • 任何语言
  • by live我的意思是图表应该可以在屏幕上操作一次。

7 个答案:

答案 0 :(得分:4)

我会推荐Jeff Heer所使用的任何库:

我相信这三个项目都是开源的。 Jeff Heer非常善于在他的代码中引用论文,至少在Prefuse库中。查看Prefuse来源:

BalloonTreeLayout :使用的算法是G.Melançon和I. Herman的研究论文“生根树的圆形图”,“数学与计算机科学中心的报告”,报告编号INS-9817 ,1998年。

ForceDirectedLayout.java :没有提及参考,但有很多评论描述它的工作原理。

FruchtermanReingoldLayout.java :引用Jung。在他们的网站上我找到了paper which has references to various algorithms

NodeLinkTreeLayout.java :使用的算法是Christoph Buchheim,MichaelJünger和Sebastian Leipert的研究论文Improving Walker's Algorithm to Run in Linear Time,Graph Drawing 2002.该算法纠正了Walker的性能问题。算法,它推广了Reingold和Tilford的方法,用于整理树木图,以支持在任何给定节点上具有任意数量子节点的树。

RadialTreeLayout.java :使用的算法是Ka-Ping Yee,Danyel Fisher,Rachna Dhamija和Marti Hearst的研究论文Animated Exploration of Dynamic Graphs with Radial Layout,InfoVis 2001.该算法计算径向布局,考虑到尺寸可能的变化,并保持方向和排序约束,以促进布局配置之间平滑和易于理解的过渡。

SquarifiedTreeMapLayout :此特定算法取自Bruls,D.M。,C。Huizing和J.J. van Wijk,“Squarified Treemaps”in Data Visualization 2000,Proceedings of the Joint Eurographics and IEEE TCVG Sumposium on Visualization ,2000,pp.33-42。可在http://www.win.tue.nl/~vanwijk/stm.pdf在线获取。有关TreeMaps的更多信息,请参阅http://www.cs.umd.edu/hcil/treemap-history

答案 1 :(得分:3)

prefuse visualization toolkit看起来像个好人。

  

Prefuse支持丰富的一套   数据建模的功能,   可视化和互动。它   为。提供优化的数据结构   桌子,图表和树木,一大堆   布局和可视编码技术,   并支持动画,动态   查询,集成搜索和   数据库连接。 Prefuse是   用Java编写,使用Java 2D   图形库,很容易   集成到Java Swing中   应用程序或Web小程序。 Prefuse   根据BSD条款获得许可   许可证,可以自由使用   商业和非商业   目的。   (来自主页)

答案 2 :(得分:3)

图形绘制是一个很大的领域。这是graph drawing research community web site的链接。他们有一个专门关于图形绘制的年度会议。 我还建议阅读一些Prof. David Harel's Publications - 他的一个研究领域是图形绘制,例如this paper。在一般情况下,这似乎是一个难以解决的问题。也许您可以将应用程序限制为某些受限制的图形子集(平面图可能过于严格)。具有一小组顶点的简单图形可能更容易操作。

答案 3 :(得分:3)

答案 4 :(得分:2)

我使用Dot语言来描述图形。并且,Dot编译器的输出包括SVG,它是XML格式并且可以嵌入到XHTML中。

http://en.wikipedia.org/wiki/DOT_language

答案 5 :(得分:1)

不确定你的意思......

听起来好像你正在寻找类似于rrdtool的东西?

也许在他们的网站上有一些信息会有所帮助:

http://oss.oetiker.ch/rrdtool/

答案 6 :(得分:1)

我是stackflow的新手,很抱歉迟到的回复。根据您想要获得的交互方式......您可能还想要查看Flot(使用JQuery,交互性较低)或processing ...更具互动性。