Text D3、SVG和文本路径:如何向下移动文本?
我有一个图表,其中一些文本是用textPath写在其中一条路径上的。然而,我的问题是:我需要文本位于文本路径的另一侧,即位于其下方 下面是一个例子: 我需要这里的文本在纯蓝色区域内。这样你就可以读了。这里的蓝色弧线是文本路径。换句话说,我只想将文本向下移动约20px 真正让我困惑的是,我可以在文本上设置一个“x”属性并将其左右移动,但我不能设置一个“y”属性来上下移动它 我想不出来。有人能帮忙吗 这是我的密码Text D3、SVG和文本路径:如何向下移动文本?,text,svg,path,d3.js,Text,Svg,Path,D3.js,我有一个图表,其中一些文本是用textPath写在其中一条路径上的。然而,我的问题是:我需要文本位于文本路径的另一侧,即位于其下方 下面是一个例子: 我需要这里的文本在纯蓝色区域内。这样你就可以读了。这里的蓝色弧线是文本路径。换句话说,我只想将文本向下移动约20px 真正让我困惑的是,我可以在文本上设置一个“x”属性并将其左右移动,但我不能设置一个“y”属性来上下移动它 我想不出来。有人能帮忙吗 这是我的密码 var labels = svg.selectAll("text.label")
var labels = svg.selectAll("text.label")
.data(partition.nodes(data))
.enter()
.append("text")
.attr("class", "label")
.attr("x", 10)
.attr("stroke","black")
.style("background-color",'white')
labels.append("textPath")
.attr("xlink:href", function(d) { return '#' + d.name })
.text(function(d) { return d.name.capitalize() })
您可以使用
dy
属性更改垂直对齐方式。创建了JS FIDLE示例,显示D3强制布局图中链接上的标签
请参阅JS Fiddle中的工作演示:
你试过设置一个
dy
属性吗?呸!就这样。谢谢你,拉尔斯。你应该把它作为答案贴出来,我会核对一下,这样你就能得到分数了。再次感谢
var linktext = svg.append("svg:g").selectAll("g.linklabelholder").data(force.links());
linktext.enter().append("g").attr("class", "linklabelholder")
.append("text")
.attr("class", "linklabel")
.style("font-size", "13px")
.attr("dx", "30")
.attr("dy", "-5")
.attr("text-anchor", "start")
.style("fill","#000")
.append("textPath")
.attr("xlink:href",function(d,i) { return "#linkId_" + i;})
.text(function(d) {
return d.type;
});