2

我刚刚从纯 D3.js 中的力反馈图可视化转移到了惊人的图分析库 JSNetworkX(NetworkX 的 JavaScript 端口)。现在我知道 JSNetworkX 在后台使用 D3.js 进行可视化,但我无法弄清楚如何在实际节点之外获取标签以显示。我的意思是,我可以得到 Edge 标签,但那是另一回事。在 D3.js 中,您必须使用实际的 SVG 文本元素,但这一切似乎都被抽象掉了。

http://jsnetworkx.org/

我已经尝试使用所有不同的标签属性,但我最终要么没有标签,要么标签在节点中间发出一声巨响。

我发现了一个似乎引用旧版本的线程,但即使更改了它也不起作用的语法。

https://github.com/fkling/JSNetworkX/issues/16

我真的很想能够可视化节点外部的标签,因为在节点内部看起来就像一团糟。

请帮忙!哦,请参考最新版本(0.34),因为以前的答案是指旧的折旧版本。

4

1 回答 1

0

好的,所以回答我自己的问题......

基本上看起来只有两个标签:节点标签;和边缘标签。边缘标签似乎是沿着链接呈现的,并且非常可配置,

只有一个节点标签,虽然它是一个单独的 SVG 文本元素,但您似乎没有足够的控制权。使用我能做到的最好的标签样式是使用 CSS 文本对齐属性('text-anchor': 'middle','dominant-baseline': 'text-after-edge')将其放置在节点的顶部然后将节点半径缩小到 5。这基本上与我可以得到的传统 D3 图表一样接近,您可以完全控制标签的位置。

如果有更好的方法仍然感兴趣,但希望这可以帮助人们。

于 2019-01-09T16:18:22.157 回答