javascript - 如何在 D3 中的矩形上写入一段文本?

标签 javascript d3.js

我使用以下代码创建了一些长矩形:

如何在每个矩形上方写入文本?我尝试将“文本”附加到输入选择中,并尝试在所有代码之后在“ttest”上附加“文本”,但它对我来说不起作用。

非常感谢任何帮助! var ttest = SVGTTest .selectAll("矩形") .data(ttestArray);

ttest.exit()
    .style("opacity", TTEST_OPACITY)
    .transition()
    .duration(ANIMATION_TIME_MODIFIER*300)
    .style("opacity", 0)
    .remove();

ttest.enter()
    .append("rect");

ttest
    .attr("x", function(d, i){
        var startIndex = (ttestArray[i][0]+1)*100;
        return xScale(startIndex);
    })
    .attr("y", function(d, i){
        return yScale(ttestArray[i][3]);
    })
    .attr("width", function(d, i){
        var endIndex = (ttestArray[i][1]-ttestArray[i][0])*100;
        return xScale(endIndex);
    })
    .attr("height", 3)
    .style("opacity", 0)
    .transition().duration(ANIMATION_TIME_MODIFIER*500)
    .style("opacity", TTEST_OPACITY)
    .style("fill", "#000000");

最佳答案

您需要分别附加两个元素(svg recttext 元素)。处理此问题的常见方法是绑定(bind)一个创建 svg g 组元素的 Enter 选择,然后使用该选择附加 recttext单独的元素:

var rects = d3.selectAll("g.rectGroup")
    .data(data);

var rectEnter = rects.enter().append("g") 
    .attr("class", "rectGroup");

rectEnter.append("rect").attr({..});
rectEnter.append("text").attr({..});

rects.exit().remove();

关于javascript - 如何在 D3 中的矩形上写入一段文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25667902/

相关文章:

javascript - D3.js:圆半径比例未显示圆

javascript - 如何在元素上设置默认 focus()

javascript - 无法在函数中传递附加参数

javascript - 如何修复我的排行榜上这种意外的图像定位?

javascript - 如何在 html javascript 中验证 google maps api key ?

javascript - SSH 进入远程机器并在 Node.js 中执行命令

javascript - 如何根据函数参数在 D3 中添加半圆?

javascript - .spread 带有数据重定向

javascript - 如何在 AngularJS 中将参数传递给 Promise

javascript - 在 d3.js 中绘制不同颜色的公寓和城镇