javascript - 将文本附加到 D3 力布局图

标签 javascript d3.js label force-layout

我正在尝试修改此处的力布局图 http://bl.ocks.org/mbostock/4062045通过在圆圈内添加文本,但文本不会出现。我将这段代码添加到网站上的原始代码中。

node.append("text")
  .style("text-anchor", "middle")
  .text(function(d) { return d.name; }); 

最佳答案

我没有完整的代码,但我认为您正在将文本添加到圆圈中,并且由于圆圈很小,因此您看不到文本。

现在,您的节点当前是圆形(我只是假设)。如果您希望每个节点都有圆圈和文本,那么您的节点应该是 svg g 元素(g 代表“组”),并且为每个这样的 g 元素分配一个圆圈和一个文本。有关更多信息,您可以找到 here (代码也包含在那里)

编辑:一旦您看到标签,您就会希望以与节点相关的良好方式定位它们。以下是与将标签定位到图形节点相关的几乎官方建议:

对于垂直对齐,请使用“dy”属性:

by default, the baseline of the text is at the origin (bottom-aligned)
a dy of .35em centers the text vertically
a dy of .72em places the topline of the text at the origin (top-aligned)

使用 em 单位很好,因为它会根据字体大小自动缩放。如果您不指定单位,则默认为像素。

对于水平对齐,请使用“text-anchor”属性:

the default is "start" (left-aligned for left-to-right languages)
"middle"
"end"

关于javascript - 将文本附加到 D3 力布局图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21082241/

相关文章:

text - 在 SSRS 图表上放置附加文本

python matplotlib 标签/标题错误字符

javascript - 为什么 DOMParser 需要被实例化?

javascript - 在 keychange 上执行可观察的请求

JavaScript改变类的背景颜色

javascript - 动画 Canvas 描边

javascript - 为什么图形线偏离 Y 轴和 X 轴?

javascript - 使用 C3.js 添加图像

angularjs - D3 与 Angular 的集成 : "Error: Invalid value for <rect> attribute x"

c# - 单击标签以聚焦 WPF 中的另一个控件