问题标签 [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 投票
0 回答
752 浏览

d3.js - D3 力有向图 - 如何过滤节点和关联链接?

我是 d3(和 javascript)的新手,这是我第一次在 Stackoverflow 上发布问题。如果我的问题不清楚或不恰当,请告诉我。如果您提供任何建议或帮助,我将不胜感激。

我在力有向图中过滤节点时遇到困难。我已经搜索并使用发布在其他问题(D3 force-directed graph - filter nodes and associated links)上的代码来隐藏节点及其相关链接。但是,我无法隐藏链接全部不可见的节点。

这是我正在尝试做的事情:

如果与该节点的所有链接都是不可见的,则该节点也应该是不可见的。否则,如果与该节点相关的任何链接可见,则该节点应该可见。我从 jsfiddle.net (zhanghuancs/cuYu8/) 找到了这段代码,但我无法在我的身上使用这段代码。(我不知道如何在这里链接 jsfiddle 代码。)

有人可以帮我吗?这是我的代码:

0 投票
1 回答
840 浏览

javascript - D3强制有向图点击事件不起作用

我也是 d3.js 和 JavaScript 的新手。这是我在 d3 中使用 CSV 文件数据的强制定向图的代码。

在开始之前,这是我想要制作类似http://bl.ocks.org/eesur/be2abfb3155a38be4de4的代码片段

关于图表的一切都很好,但 onclick 事件似乎不起作用。单击功能应该将单击事件应用于 csv 数据中的所有节点(即 16 个节点),但我的图表只有 9 个节点。

我试图将点击数据放到这些特定节点,但失败了。这也是我要绘制图表的 CSV 数据

https://github.com/hohadang1999/Authorship-Network-Graph/blob/master/publications.csv

我想要实现的是这些节点上的点击事件,如图所示

0 投票
1 回答
58 浏览

javascript - 将新节点添加到强制模拟导致仅转换到新节点

我正在尝试使用 forceSimulation 用 d3 构建动态强制图。当我使用硬编码节点构建图表并链接按预期构建的所有项目时。但是当我添加新节点时,所有旧节点都不会转换它们的位置,当我拖动旧节点时,只有新节点移动(当我移动新节点时,它会按预期移动)。

我试图改变模拟的刻度方式,但没有成功解决这个问题。

当我执行 addNode() 函数时,我只能拖动添加的新节点。所有其他节点都卡住了,当我拖动它们时,它只会更改新节点的位置。任何帮助都会很棒!谢谢。

0 投票
1 回答
103 浏览

r - 链接指向 forceNetwork 的左上角,R 中的 networkD3

我正在尝试使用forceNetwork,但链接指向左上角并且链接不符合预期。

预期结果是将 h20 作为节点 0,然后连接到“H2O Driverless AI”和 H2O.ai。然后 H2O Driverless AI > DAI。然后DAI>这是一个机械化操作跟踪系统。H2O.ai>H2O。H2O>H2O 是用于大数据分析的开源软件

如果我错了,请纠正。

0 投票
0 回答
142 浏览

javascript - D3.js v5 - Update nodes from another array of nodes

Each node I got is in g html tag which contains 2 more tags:

Text tag- representing the name of the node.

Circle tag - which is the node shape.

When I shifting from 1 set of nodes to another set of nodes in the HTML I see both text tags and circle tags of data from the old set of nodes and from the new set of node.

I tried to play with the exit().remove() method and with merge() method but nothing seems to fix my problem

Here is part of my update function which relevant to the nodes.

I expect to get g html tag with only the circle and text of new node.

0 投票
0 回答
101 浏览

javascript - 如何在力有向图中配置力参数以使图稳定

我正在尝试使用 d3.js 制作一个力有向图,但随着节点数量的增加,该图变得非常不稳定并且它开始振动,它也超出了画布限制。我想要实现的是中心节点下方的所有依赖节点及其上方的依赖关系,因此它在视觉上是可以理解的

0 投票
0 回答
94 浏览

javascript - 修改 D3 Force-Directed Graph 中的现有节点,而不会出现跳跃过渡

我有一个连续的处理数据流从数据库流入客户端,在客户端我使用 D3 渲染一个力导向图。

经过多次尝试,图表似乎正在更新。基本上,圆半径现在从新数据更新。

然而,每次simulation.nodes(nodes_data) 接收到nodes_data 时,整个图都会重新初始化并最终成为一个跳跃的过渡。

我试过改变不同的 force.alphaTarget 值。

这是我用来初始化模拟的函数。

这是我用来用新的nodes_data 更新模拟的函数。

这是节点更新功能

这是用于更新链接的功能

我没有收到任何错误消息。这只是一个跳跃的图形转换。我希望图表保留其原始配置并更新现有位置的节点半径。我想有一个流畅的体验。

0 投票
1 回答
685 浏览

d3.js - d3力碰撞后如何获取圆的坐标(cx,cy)?

在使用 d3-force 碰撞后,我试图获取圆的坐标(cx,cy),但我仍然得到原始位置。有什么方法可以获取圆的平移坐标(碰撞检查后)?

以下只是代码摘要。

0 投票
0 回答
45 浏览

d3.js - 对象构造函数中的 D3 v4 气泡模拟未放置圆

我想通过将创建放在一个对象中并调用该对象的实例来创建 D3 气泡图。

在对象之外,脚本运行良好,显示出散布在画布中的气泡。

但是,当我尝试将脚本放置在对象构造函数中时,forceSimulation 函数似乎并没有将气泡分散在 y 轴上。他们只是聚集在同一个 cy 和 cx

更新这是完整示例代码的jsfiddle

0 投票
1 回答
823 浏览

javascript - 如何在 d3 上标记力导向图?

我正在使用 d3.js 创建一个力导向图,并且无法通过使用文本标记节点的点。我在 StackOverflow 和在线教程上尝试了无数答案,但我相信问题在于我对 Javascript 的基本理解。 在此处输入图像描述

我尝试了 .attr/.append/.text 的不同组合以从源和目标中获取文本以显示,但没有任何反应。

这是有问题的区域:

这是样式的简化摘录:

这是脚本的简化摘录:

我目前没有收到任何错误消息,这使我很难调试文件。任何帮助表示赞赏。谢谢!