javascript - d3力布局中心节点定位

标签 javascript css d3.js force-layout

我已经使用 d3.js 来可视化我的数据。结果是这样的。

PIC_1

enter image description here

PIC_2

enter image description here

我的问题是如何让数据像PIC_1一样呈现,中心点局部在固定位置,中心点周围的其他点(子点)像一个圆。

现在,当我刷新页面时,数据将重新加载到浏览器中,所有点的位置也会随机变化。

那么哪个d3的api或者tricks可以用来达到这个目的呢。 :)

最佳答案

看看这个例子:

link to jsfiddle

enter image description here

如果您检查代码并尝试布局,您会看到根节点经过特殊处理,使其始终位于图形的中心(除非您拖动它,但即使您拖动它也可以阻止,如果您想要)。

在初始化时,它的属性 fixed 被设置为 true,这样 d3 强制布局模拟就不会移动它。此外,它被放置在包含布局的矩形的中心:

root.fixed = true;
root.x = width / 2;
root.y = height / 2;

您当然需要更改或添加一些代码才能将此功能集成到您的示例中,但核心思想在我链接的示例中非常清楚。

希望这对您有所帮助。如果您有任何问题、需要澄清等,请告诉我。

关于javascript - d3力布局中心节点定位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23495607/

相关文章:

javascript - 代码不断循环进入最大调用堆栈错误

javascript - Ionic 2 与 ngrx、AlertController、LoadController 问题

jquery - flexNav.js 子菜单偏离中心

html - 如何从 CMS 动态更改背景图像 SVG 的填充值

javascript - 如何使用 D3.JS 中的转换更新 Y 域?

javascript - 从另一个元素中过滤一个二维数组

css - IE7 兼容性问题

javascript - 在 sapui5 中点击下载 d3 图表

javascript - D3.js 文本输入(在 svg 内)过渡不透明度 0 到 1 不会以 1 结束

javascript - 当文本推送到 ng-submit 范围内的数组时,ng-repeat 不更新