问题标签 [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.
d3.js - dbclick 不止一次功能不起作用 力导向图 d3.js
我需要将我的节点固定在第一个 dblclick 中并更改节点的颜色和笔触。在第二个 dblclick 上,我想将这些反转回来。使用 dblclick 函数的以下代码,对于第一个 dblclick,节点的颜色变为蓝绿色,但节点没有被固定。第二个 dblclick 也不做任何事情。有人可以帮忙吗。
javascript - 按记录 id 定义节点索引
我正在尝试使用以下示例使用 d3 构建图表:http: //bl.ocks.org/jhb/5955887
是我第一次尝试使用 d3 库,并且尝试使用来自我的数据库的数据设置节点,这是我要构建的节点的示例:
来自节点的数据来自一个名为“研究人员”的 MySql 表,只不过是一个包含 id 和姓名的人员列表:
如您所见,每个研究人员都有一个相关数组,其中包含所有相关研究人员,这将用于构建边缘。下面是设置图边和节点的代码:
这张图片来自 console.log(g_nodes) 并按预期工作:
问题是,只要我将边和节点放入数据集对象,节点的索引就会更改为数组位置,并且权重字段会出现在节点对象上:
发生这种情况时,我从 d3 收到一个错误:
然后我查看边缘,第一个边缘接收到源和目标的未定义:
对不起我的英语,希望你能帮忙。谢谢
javascript - 如何在d3中将文本添加到svg圆圈
我有以下代码,我想在圆圈中添加文字。我怎样才能使它成为可能;我已经查看了这些可能的重复项
javascript - 强制有向图节点粘在中心
从这个问题跟进后在 D3 图表中的圆圈内插入文本
我的节点粘在中心。我不确定哪个属性指向我的节点及其 x 和 y 坐标。我最近更改了我的代码以g
向圆圈添加一个图层,以便我可以将文本与形状一起附加。
数据
https://api.myjson.com/bins/hwtj0
更新代码
更新的 HTML
javascript - 如何使用 d3-force 定义和使用自定义力?
我想定义和使用一个自定义的力,比如定心、径向力,我已经有了一个矢量场。
这是我想使用的力功能:
d3.js - 页面重新加载后 D3 缩放不适用于当前鼠标坐标
我有一个 d3 Force-Directed Graph,我在其上实现了缩放功能。我的要求是保存当前的缩放属性(缩放和平移),当页面重新加载时,我必须使用保存的缩放属性渲染图形。
当页面重新加载时,我正在设置缩放比例并转换为以前保存的值,就像这样。
然后我得到比例并在图表上平移。
该图在最后一次出现的缩放级别上加载良好。
我现在的问题是,当我尝试放大或缩小缩放操作时,当前鼠标位置并没有像之前那样发生。
之后设置缩放我正在使用
有人知道这是什么原因吗??
Note: I am using d3 v3
javascript - D3.js 用力沿着圆圈展开正方形
我想用力()和碰撞沿着一个圆圈散布带有内容的方块,所以这些方块不会相互重叠和主圆。任何想法如何做到这一点?我应该使用链接来做到这一点吗?这是一个小提琴http://jsfiddle.net/benderlio/usbq839m/3/ 有时它可以很好地传播方块,但大多数时候方块会像img一样移动。
谢谢。
升级版:
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 其他修改包括将链接从行更改为路径:
然后更改链接操作以处理路径:
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 下的图表?
d3.js - 在D3 forceSimulation中拖动一个节点时停止移动其他节点
我制作了一个 D3 强制有向图d3.forceSimulation()
并附加了拖动功能。单击一个节点时,我不希望其他节点相应移动。d.fx
现在我可以通过设置and来冻结被拖动的节点d.fy
,如下所示:
拖动一个节点时是否可以冻结所有其他节点?