问题标签 [d3-force-directed]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
445 浏览

d3.js - dbclick 不止一次功能不起作用 力导向图 d3.js

我需要将我的节点固定在第一个 dblclick 中并更改节点的颜色和笔触。在第二个 dblclick 上,我想将这些反转回来。使用 dblclick 函数的以下代码,对于第一个 dblclick,节点的颜色变为蓝绿色,但节点没有被固定。第二个 dblclick 也不做任何事情。有人可以帮忙吗。

0 投票
0 回答
51 浏览

javascript - 按记录 id 定义节点索引

我正在尝试使用以下示例使用 d3 构建图表:http: //bl.ocks.org/jhb/5955887

是我第一次尝试使用 d3 库,并且尝试使用来自我的数据库的数据设置节点,这是我要构建的节点的示例:

来自节点的数据来自一个名为“研究人员”的 MySql 表,只不过是一个包含 id 和姓名的人员列表: 在此处输入图像描述

如您所见,每个研究人员都有一个相关数组,其中包含所有相关研究人员,这将用于构建边缘。下面是设置图边和节点的代码:

这张图片来自 console.log(g_nodes) 并按预期工作: 在此处输入图像描述

问题是,只要我将边和节点放入数据集对象,节点的索引就会更改为数组位置,并且权重字段会出现在节点对象上:

在此处输入图像描述

发生这种情况时,我从 d3 收到一个错误:

然后我查看边缘,第一个边缘接收到源和目标的未定义:

对不起我的英语,希望你能帮忙。谢谢

0 投票
1 回答
1916 浏览

javascript - 如何在d3中将文本添加到svg圆圈

我有以下代码,我想在圆圈中添加文字。我怎样才能使它成为可能;我已经查看了这些可能的重复项

在 D3 图表中的圆圈内插入文本

0 投票
1 回答
105 浏览

javascript - 强制有向图节点粘在中心

从这个问题跟进后在 D3 图表中的圆圈内插入文本

我的节点粘在中心。我不确定哪个属性指向我的节点及其 x 和 y 坐标。我最近更改了我的代码以g向圆圈添加一个图层,以便我可以将文本与形状一起附加。

数据

https://api.myjson.com/bins/hwtj0

更新代码

更新的输出 在此处输入图像描述

预期输出 连同节点名称

更新的 HTML

0 投票
0 回答
254 浏览

javascript - 如何使用 d3-force 定义和使用自定义力?

我想定义和使用一个自定义的力,比如定心、径向力,我已经有了一个矢量场。

这是我想使用的力功能:

0 投票
0 回答
63 浏览

d3.js - 页面重新加载后 D3 缩放不适用于当前鼠标坐标

我有一个 d3 Force-Directed Graph,我在其上实现了缩放功能。我的要求是保存当前的缩放属性(缩放和平移),当页面重新加载时,我必须使用保存的缩放属性渲染图形。

当页面重新加载时,我正在设置缩放比例并转换为以前保存的值,就​​像这样。

然后我得到比例并在图表上平移。

该图在最后一次出现的缩放级别上加载良好。

我现在的问题是,当我尝试放大或缩小缩放操作时,当前鼠标位置并没有像之前那样发生。

之后设置缩放我正在使用

有人知道这是什么原因吗??

Note: I am using d3 v3

0 投票
2 回答
175 浏览

javascript - D3.js 用力沿着圆圈展开正方形

我想用力()和碰撞沿着一个圆圈散布带有内容的方块,所以这些方块不会相互重叠和主圆。任何想法如何做到这一点?我应该使用链接来做到这一点吗?这是一个小提琴http://jsfiddle.net/benderlio/usbq839m/3/ 有时它可以很好地传播方块,但大多数时候方块会像img一样移动。

在此处输入图像描述

谢谢。

升级版:

添加了一个主要的固定方块,现在看起来更好了。但看起来我必须对“碰撞顺序”做一些事情。方块翻转了。任何想法如何解决它? 在此处输入图像描述

0 投票
0 回答
57 浏览

javascript - 引入标记时,MD Edge 中具有缩放功能的 D3js 强制导向图崩溃

我正在尝试使用带有平移和缩放的 D3JS 制作一个力导向图。在我引入标记以使链接箭头结束之前,该图工作正常。当我这样做时,它在 chrome、firefox 和 safari 中运行良好,但是当我在 MS Edge 中缩放时图表崩溃。如果你看这个小提琴: https : //codepen.io/aschultz/pen/gQJaKb 第 140-152 行添加箭头

这个小提琴将在 MS Edge 放大时崩溃。但是,如果您在缩放之前注释掉第 152 行: https ://codepen.io/aschultz/pen/LXopOX

然后它工作正常,但显然你没有得到箭头。一种解决方法是用路径本身替换标记: https ://codepen.io/aschultz/pen/eQaBBm 但是你显然会失去很多关于标记的好东西,如果你开始做数学会变得更棘手不直的路径。关于如何使用 Edge 上的标记进行这项工作的任何建议?

小提琴是根据 Tom Roth 的示例修改的:https ://bl.ocks.org/puzzler10/4438752bb93f45dc5ad5214efaa12e4a 其他修改包括将链接从行更改为路径:

然后更改链接操作以处理路径:

0 投票
0 回答
469 浏览

d3.js - D3 强制有向图在 v4 和 v5 之间进行破坏性更改?

我是 D3 的新手,正在查看力有向图的示例之一。

此示例是使用 v4 构建的,所以我要做的唯一更新是从 v4 更改:

<script src="https://d3js.org/d3.v4.min.js"></script>

到 v5:

<script src="https://d3js.org/d3.v5.min.js"></script>

然而现在什么都没有显示。

我读过 v3 和 v4 之间存在显着差异的地方,但这里指出:“D3 5.0 仅引入了一些非向后兼容的更改”,其中我没有看到任何关于力导向图的内容。

v5 中是否有会产生这种影响的重大变化?

我在哪里可以更新此代码以显示 v5 下的图表?

0 投票
2 回答
633 浏览

d3.js - 在D3 forceSimulation中拖动一个节点时停止移动其他节点

我制作了一个 D3 强制有向图d3.forceSimulation()并附加了拖动功能。单击一个节点时,我不希望其他节点相应移动。d.fx现在我可以通过设置and来冻结被拖动的节点d.fy,如下所示:

拖动一个节点时是否可以冻结所有其他节点?