我正在尝试创建一个d3力导向图(http://mbostock.github.com/d3/ex/force.html)。这是包含我的数据的简单JSON文件。{"nodes":[{"name":"Node1","group":1},{"name":"Node2","group":1}],"links":[{"source":1,"target":2,"value":2}]}我在同一组中有两个节点。我也在尝试在两个节点之间创建链接。但是,我的页面仍然是空白的(而且我确信除了JSON之外的其他部分都是正确的)。什么是“组”?为什么边同时具有“源”和“目标”——这些值是什么?为什么链接有“值
我已经为社交网络分析构建了一个力导向图。我面临的问题是节点不断相互重叠,如何防止力有向图中的节点重叠?这是我的codewithdummydata下面是我的力导向图的图像如何删除这些节点的重叠?以及如何在链接之间至少保持一定距离,以便链接正确可见? 最佳答案 有两种方法可以避免d3force布局中的重叠。首先是调整forceobject的参数,其中最相关的是“charge”参数。具有负“电荷”值的节点将其他节点推开(相对于具有正值的节点将其他节点拉近),您可以增加电荷量以产生更大的插入力。“费用”的默认值为-30,因此您可以从那里进行
我已经构建了一个带有分组节点的d3力定向图。我想将这些组封闭在云状结构中。我该怎么做?图表的JsFiddle链接:http://jsfiddle.net/Cfq9J/5/我的结果应该类似于这张图片: 最佳答案 这是一个棘手的问题,我不完全确定您能否以一种表演的方式来解决这个问题。你可以在这里看到我的静态实现:http://jsfiddle.net/nrabinowitz/yPfJH/还有这里的动态实现,虽然它很慢而且不稳定:http://jsfiddle.net/nrabinowitz/9a7yy/实现注意事项:这是通过用其组中的所
在使用D3或GraphGL库?节点需要展开并取代周围的其他节点,同时保持力导向布局。如果有人能forkthis证明,那太好了!谢谢请注意,这与thisquestion中的简单缩放不同。 最佳答案 好问题。为了回答这个问题,我实现了一个D3plugin对于fisheyedistortion.它大致基于Flare和Sigma.js之前的工作,而后者又基于Sarkar和Brown的工作,"GraphicalFisheyeViewsofGraphs",志'92.这是一个quickdemo与Misérables数据集。查看代码的源代码。我会在
在d3中使用力导向布局,如何使链接距离成为优先事项,同时仍保持良好的图形布局?如果我指定动态链接距离,但保留默认费用,我的图形距离会因费用函数而变形一点,不再是准确的距离:但是,如果我删除电荷,图形将如下所示:感谢任何建议! 最佳答案 如果我理解正确,我相信有一个潜在的解决方案。为了使链接距离准确,您需要将电荷和碰撞力设置为零,但正如您的图片所暗示的那样,节点的间距不会考虑其他节点,只是那些它们共享链接的节点和。由于d3.force初始化在叶序排列中没有x,y值的节点,链接和节点将以意想不到的方式聚集。但是,如果在整个模拟过程中施加
我正在构建一款小型太空射击游戏。当涉及到空间物理学时,我曾经遇到过数学问题。用文字描述如下:有一个最大速度。因此,如果您全速行驶,您的飞船将在屏幕上一遍又一遍地移动,就像在旧的小行星游戏中一样。如果然后释放火箭助推器,您的船应该继续以该速度在屏幕上移动。然后是我现在卡住的棘手部分。如果您将船旋转任何Angular并再次提供助力,船应该尝试到达这个方向并且在谈到它的移动速度时永远不会超过最大速度。所以我的问题是。有人对这个问题有好主意吗?如果您知道要寻找什么,感觉就像以前做过。:)我将添加这个小图像来说明试图用一些向量计算来完成什么。红色环:最大速度绿线:当前船舶方向。黑线:方向以及船在
我正在学习本教程:>http://bl.ocks.org/mbostock/4062045用于在D3Javascript中可视化力定向图。上面的链接也有代码和JSON文件。我有两个问题。节点是如何链接的?以下是链接和节点及其位置的代码:force.on("tick",function(){link.attr("x1",function(d){returnd.source.x;}).attr("y1",function(d){returnd.source.y;}).attr("x2",function(d){returnd.target.x;}).attr("y2",function(d
我已经实现了d3的强制布局。然而对我来说问题是布局没有在屏幕上展开。以下是截图:我希望节点以动态链接距离分布在屏幕上,因为右侧和左侧有很多空白区域。我尝试按如下方式随机化链接距离:d3.layout.force().charge(-800).linkDistance(function(d){return(Math.random()*(400-200)+1);}).size([w,h]);这会增加链接距离,但也会增加垂直方向的距离。我曾尝试设置linkStrength()属性,但它对我不起作用。我怎样才能让这个布局只在水平方向上分布在整个区域?有没有一种方法可以定义链接距离以适合我页面的
我很想知道D3使用什么算法来实现库中的力导向图功能。看完Kobourov'ssummary力导向图的历史让我有点困惑,不知道库中使用的确切算法或方法(算法/启发式的组合)是什么。D3APIreference说Barnes-Hut算法用于计算作用在物体上的电荷,这是一个O(N*log(N))操作。Kobourov的文章提到Quigley-Eades算法和Hu的算法是利用Barnes-Hut的多级算法。D3中是否以某种方式使用了其中之一?APIwiki进一步说Verlet集成用于粒子定位。sourcecode提到了Gauss-Seidel算法,这又在Hu'salgorithm中提到。和Dw
在D3.js的力导向布局中,LinkDistance和LinkStrength是如何相关的?我假设他们是,如果我错了请纠正我。我知道linkDistance定义了任何一对节点之间的长度,并且本质上用作力布局中的约束。但是linkStrength起什么作用呢?D3.js的API文档将其定义为“链接到[0,1]范围内指定值的强度(刚性)”,这里的“刚性”到底是什么意思? 最佳答案 您可以将链接距离视为预期距离,并将强度视为您希望在每次迭代中达到此目标距离的速度。如果您查看sourcecodeoftheforcedirectedlayou