Need help With D3: positioning label text

Tell us what’s happening:

If you try my code in the FCC editor, it displays properly. I just don’t quite understand why I can’t pass any of the tests. The tests want me to place the texts 3px higher than the bars and I think that’s what’s wrong.

Please help to suggest anything I’ve done wrong.
Thanks.
-Conner

Your code so far


<body>
<script>
  const dataset = [12, 31, 22, 17, 25, 18, 29, 14, 9];

  const w = 500;
  const h = 100;

  const svg = d3.select("body")
                .append("svg")
                .attr("width", w)
                .attr("height", h);

  svg.selectAll("rect")
     .data(dataset)
     .enter()
     .append("rect")
     .attr("x", (d, i) => i * 30)
     .attr("y", (d, i) => h - 3 * d)
     .attr("width", 25)
     .attr("height", (d, i) => 3 * d)
     .attr("fill", "navy");

  svg.selectAll("text")
     .data(dataset)
     .enter()
     // Add your code below this line
.append("text")
.attr("x",(d, i) => i*30)
.attr("y",(d, i) => h - 3 * d)
.text((d) => d)



     // Add your code above this line
</script>
<body>

Your browser information:

User Agent is: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.125 Safari/537.36.

Challenge: Add Labels to D3 Elements

Link to the challenge:

text element. First, append text nodes to the svg
I can see you append it to the text but where is the svg?
.append(“text”)

They should be calculated the same way as the rect ones,
referser onto rect:

The tests want me to place the texts 3px higher than the bar:
except the y value for the text should make the label sit 3 units higher than the bar.
the test want u to do it only with the y value

Finally, use the D3 text() method to set the label equal to the data point value.
Where is the text()???
i can’t seem to find it

Thanks for helping, but I just figured it by adding another “-3” to the equation.