什么算法适合实时数据的交互式/实时图形绘制和直接操作?
如果失败 - 你用什么库来绘制图表?
建议;
顺便说一句-我的意思是图论意义上的图表-
- 任何语言的
- 点和线实时我的意思是图表一旦在屏幕上就应该是可操作的。
What algorithms are good for interactive/realtime graph-drawing for live data and direct-manipulation?
Failing that - what libraries do you use to draw graphs?
Suggestions;
- Prefuse information-visualization toolkit
- any others?
BTW- I mean graphs in the graph-theory sense - points and lines
- any language
- by live I mean the graph should be manipulatable once on screen.
发布评论
评论(7)
我会推荐 Jeff Heer 开发过的任何库:
我相信这三个项目都是开源的。 Jeff Heer 非常擅长在他的代码中引用论文,至少在 Prefuse 库中是这样。 查看 Prefuse 来源:
BalloonTreeLayout:使用的算法是 G. Melançon 和 I. Herman 的算法,来自他们的研究论文 Circular Drawings of Rooted Trees、Reports of the Center for Mathematics and Computer Sciences、Report Number INS-9817,1998。
ForceDirectedLayout.java:没有提到参考,但有很多评论描述了它的工作原理。
FruchtermanReingoldLayout.java:引用Jung。 在他们的网站上,我找到了一篇论文,其中引用了各种算法
NodeLinkTreeLayout。 java:使用的算法是 Christoph Buchheim、Michael Jünger 和 Sebastian Leipert 的研究论文 改进 Walker 算法以线性时间运行,图形绘制 2002。该算法纠正了 Walker 算法中的性能问题,该算法概括了 Reingold 和 Tilford 整齐绘制树木的方法,以支持具有任意数量子节点的树任何给定的节点。
RadialTreeLayout.java:使用的算法是 Ka-Ping Yee、Danyel Fisher、Rachna Dhamija 和 Marti Hearst 在他们的研究论文 使用径向布局对动态图进行动画探索,InfoVis 2001。该算法计算径向布局,其中考虑了可能的大小变化,并保持方向和排序约束促进布局配置之间的平滑且易于理解的过渡。
SquarifiedTreeMapLayout:此特定算法取自 Bruls、DM、C. Huizing 和 JJ van Wijk,《Data Visualization 2000》中的“Squarified Treemaps”,Proceedings of the Joint Eurographics 和 IEEE TCVG Sumposium可视化,2000 年,第 33-42 页。 在线提供:http://www.win.tue.nl/~vanwijk/stm .pdf。 有关 TreeMap 的详细信息,请参阅 http://www.cs.umd.edu /hcil/treemap-history
I would recommend any library that Jeff Heer has worked on:
I believe all three projects are open source. Jeff Heer is pretty good at referencing papers in his code at least in the Prefuse library. Looking at the Prefuse source:
BalloonTreeLayout: The algorithm used is that of G. Melançon and I. Herman from their research paper Circular Drawings of Rooted Trees, Reports of the Centre for Mathematics and Computer Sciences, Report Number INS–9817, 1998.
ForceDirectedLayout.java: No reference mentioned, but there are lot of comments describing how it works.
FruchtermanReingoldLayout.java: references Jung. On their website I found a paper which has references to various algorithms
NodeLinkTreeLayout.java: The algorithm used is that of Christoph Buchheim, Michael Jünger, and Sebastian Leipert from their research paper Improving Walker's Algorithm to Run in Linear Time, Graph Drawing 2002. This algorithm corrects performance issues in Walker's algorithm, which generalizes Reingold and Tilford's method for tidy drawings of trees to support trees with an arbitrary number of children at any given node.
RadialTreeLayout.java: The algorithm used is that of Ka-Ping Yee, Danyel Fisher, Rachna Dhamija, and Marti Hearst in their research paper Animated Exploration of Dynamic Graphs with Radial Layout, InfoVis 2001. This algorithm computes a radial layout which factors in possible variation in sizes, and maintains both orientation and ordering constraints to facilitate smooth and understandable transitions between layout configurations.
SquarifiedTreeMapLayout: This particular algorithm is taken from Bruls, D.M., C. Huizing, and 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. Available online at http://www.win.tue.nl/~vanwijk/stm.pdf. For more information on TreeMaps in general, see http://www.cs.umd.edu/hcil/treemap-history
prefuse 可视化工具包 看起来是一个不错的选择。
the prefuse visualization toolkit looks like a good candidate.
图形绘制是一个很大的领域。 以下是图形绘制研究社区网站的链接。 他们有一个专门关于图形绘制的年度会议。
我还建议阅读一些 Prof. David Harel 的出版物 - 他的研究领域之一是图形绘制,例如 本文。 在一般情况下,这似乎是一个很难解决的问题。 也许您可以将您的应用程序限制为某些受限制的图形子集(平面图可能限制太多)。 具有一小组顶点的简单图可能会更容易操作。
Graph drawing is a large field. Here's a link to a graph drawing research community web site. They have an annual conference specifically about graph drawing.
I can also suggest reading some of Prof. David Harel's Publications - one of his research areas is graph drawing, for example this paper. This seems like a hard problem to solve in the general case. Maybe you can limit your application to some restricted subset of graphs (planar graphs is probably too restrictive). Probably simple graphs with a small set of vertices yield easier manipulation.
有一些与 Graphviz 相关的精彩论文。 特别是:
There are some spiffy papers associated with Graphviz. In particular:
我使用Dot语言来描述图形。 而且,Dot 编译器的输出包括 SVG,它是 XML 格式,可以嵌入 XHTML 中。
I use the Dot language to describe graphs. And, the Dot compiler's output includes SVG, which is in XML and can be embedded in XHTML.
不确定你在追求什么......
听起来也许你想做一些类似于 rrdtool 的事情?
也许他们的网站上有一些信息会有所帮助:
http://oss.oetiker.ch/rrdtool/< /a>
Not sure what you are after ...
sounds like maybe you are looking to do something similar to rrdtool?
Maybe there is some info at their site that will help:
http://oss.oetiker.ch/rrdtool/
我是 stackflow 的新手,很抱歉回复晚了。 根据您想要获得的互动程度...您可能也不想查看 Flot(使用 JQuery,交互性较低),或 处理 ...交互性更强。
I'm new at stackflow so sorry for the late reponse. Depending on how interactive you want to get ... you may also want't to check out Flot (uses JQuery, less interactive), or processing ... more interactive.