使用弹簧力布局显示节点不符合网络中的过滤条件,并使用cytoscape.js在鼠标悬停时显示文本框

时间:2014-04-03 18:36:29

标签: javascript cytoscape.js

我是cytoscape.js的新手,并且想知道是否有可能在网络中显示不符合我的网络过滤标准的节点,即可能在网络底部作为异常值。这对于使用户能够完全了解网络以及过滤条件如何受到影响非常有用。例如,如http://www.plosone.org/article/fetchObject.action?uri=info:doi/10.1371/journal.pone.0004345.g005&representation=PNG_M

中的图A.

另外我想问一下,我在cytoscape.js中遇到了弹性布局选项,但它没有列在主要的cytoscape.js中。我目前使用的是乔木布局,并使用与数据值成比例的边长参数。但是,我希望我的边长是永久性的(即,如果移动节点或边缘,网络应该回弹到原始边长。这样的事情 - http://bl.ocks.org/mbostock/4062045

我的另一个问题是关于在鼠标悬停时显示工具箱。是否可以显示包含数据详细信息的文本框 - 例如在d3中使用工具提示。我在很多地方看到过这个问题,但还没有找到合适的解决方案。

非常感谢有关cytoscape.js的非常有用的答案!

1 个答案:

答案 0 :(得分:0)

(1)这取决于你。如果您使用的是力导向布局,则可以修改这些元素的力,或者您可以通过编程方式设置位置等。

(2)不支持Springy。它在Arbor上没有任何优势 - Arbor速度更快,效果更好等。一直运行布局以保持边长是很昂贵的,特别是对于大型图形。在布局完成后最好锁定节点,以便不能移动它们。它的性能更好,而且UI更好。让节点不断移动会使图形更难跟踪元素并进行分析。

如果您使用Arbor的选项,您可能会使布局永远运行(也许结束sim力为零,没有最大模拟时间等?),但我没有测试过这个,也不是首选的选项。

(3)您可以使用首选的工具提示解决方案(例如Bootstrap,Qtip等),指定元素位置的手动定位。也许最终会有像Qtip这样的特定库的插件。但是现在,手动将它们连接在一起非常简单,这样你就可以使用你喜欢的任何库。

注意:您可能希望下次在Stack Overflow上将您的问题分成不同的问题页面。这样可以更轻松地解决每个问题,对于正在阅读的其他可能对其他问题不感兴趣的人来说更好。