Javascript D3 V5循环中的单词换行

Javascript D3 V5循环中的单词换行,javascript,d3.js,svg,Javascript,D3.js,Svg,我是D3的新手,取得了一些进展,但这个问题完全困扰着我。我似乎无法使我的文字与圆圈相匹配。我不太喜欢任何东西,我认为简单的换行符甚至可以通过 下面是生成圆圈和文本的示例代码 graph .selectAll('circle') .data(this.nodes) .enter() .append('circle') .attr('r', 30) graph .selectAll('text') .data(this.nodes) .enter() .append('text') .attr('

我是D3的新手,取得了一些进展,但这个问题完全困扰着我。我似乎无法使我的文字与圆圈相匹配。我不太喜欢任何东西,我认为简单的换行符甚至可以通过

下面是生成圆圈和文本的示例代码

graph
.selectAll('circle')
.data(this.nodes)
.enter()
.append('circle')
.attr('r', 30)

graph
.selectAll('text')
.data(this.nodes)
.enter()
.append('text')
.attr('x', 0)
.attr('y', '.31em')
.attr('text-anchor', 'middle')
.text((d: Vertex) => d.name)
我已尝试添加TSPAN,但无法使其正常工作。

我建议您尝试使用D3插件,以下是一个示例:

//将文本包装成矩形。
d3plus.textwrap()
.container(d3.select(“#rectWrap”))
.draw();
//将文本包装成矩形,并调整文本大小以适合。
d3plus.textwrap()
.container(d3.select(“#rectResize”))
.调整大小(真)
.draw();
//将文本环绕成一个圆圈。
d3plus.textwrap()
.container(d3.select(#circleWrap”))
.draw();
//将文本环绕成一个圆圈,并调整文本大小以适合。
d3plus.textwrap()
.container(d3.select(#circleResize”))
.调整大小(真)
.draw()
svg{
字体系列:“Helvetica”,“Arial”,无衬线;
高度:425px;
利润率:25px;
宽度:900px;
}
.类型{
填充:#888;
文本锚定:中间;
}
.形状{
填充:#eee;
冲程:#ccc;
}

包裹
这里是一个长文本字符串,SVG默认情况下应该对其进行包装,但它没有。
这里是一个长文本字符串,SVG默认情况下应该对其进行包装,但它没有。
调整大小
这里是一个长文本字符串,SVG默认情况下应该对其进行包装,但它没有。
这里是一个长文本字符串,SVG默认情况下应该对其进行包装,但它没有。
默认行为
这里是一个长文本字符串,SVG默认情况下应该对其进行包装,但它没有。
这里是一个长文本字符串,SVG默认情况下应该对其进行包装,但它没有。
我建议您在谷歌上搜索“svg文本包装”,关于这个主题有很多文章和问题,有各种解决方案。使用SVG没有简单的文本换行方式