Javascript 为什么在使用新数据集时d3文本不出现在条形图上?

Javascript 为什么在使用新数据集时d3文本不出现在条形图上?,javascript,d3.js,charts,bar-chart,Javascript,D3.js,Charts,Bar Chart,我用几乎相同的d3代码写了两个条形图 当您在传输后单击时,条会移动,白色数字也会更改 在这个垂直条的代码笔中,它可以工作 在这个单杠代码笔中,它不起作用 有人能帮我调试吗?我被难住了 CODE FOR VERTICAL BAR LABELS var drawNewlabels = svg.selectAll("text") .data(dataset) .text(function(d) {return d;}) .attr('opacity',0) .attr("x", function(d,

我用几乎相同的d3代码写了两个条形图

当您在传输后单击时,条会移动,白色数字也会更改

在这个垂直条的代码笔中,它可以工作

在这个单杠代码笔中,它不起作用

有人能帮我调试吗?我被难住了

CODE FOR VERTICAL BAR LABELS
var drawNewlabels = svg.selectAll("text")
.data(dataset)
.text(function(d) {return d;})
.attr('opacity',0)
.attr("x", function(d, i) {return xScale(i) + xScale.rangeBand() / 2;})
.attr("y", function(d) {return h - yScale(d) + 14;});
drawNewlabels.transition().delay(1000).duration(500)
.attr('opacity',1)

CODE FOR HORIZONTAL BAR LABELS
var drawNewlabels = svg.selectAll("text")
.data(dataset)
.text(function(d) {return d;})
.attr('opacity',0)
.attr("y", function(d,i) {return yScale(i) + (yScale.rangeBand() / 2) + 4;})
.attr("x", function(d) {return xScale(d) + 14;})
drawNewlabels.transition().delay(1000).duration(500)
.attr('opacity',1)

鼠标事件导致了一个错误。这里是一个工作代码笔

也没有必要重新调整它们,因为从您第一次声明它们时起,侦听器仍然位于矩形上

哦,我还从中删除了-512

  .attr("x", function(d) {return xScale(d) -512;})
并将其替换为

  .attr("x", function(d) {return xScale(d) -20;})

因此,文本显示在栏的末尾

您好,下面的答案是您要找的吗?