Add Labels to D3 Elements. Need help!

Tell us what’s happening:
I am trying to set 3 units higher than the bar for texts, am I doing this wrong?
How about returning data point value line?

Your code so far

    const dataset = [12, 31, 22, 17, 25, 18, 29, 14, 9];
    const w = 500;
    const h = 100;
    const svg ="body")
                  .attr("width", w)
                  .attr("height", h);
       .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");
       // Add your code below this line
       .attr("x", (d, i ) => i * 30)
       .attr("y", (d, i) => h * d)
       .text((d) => d)
       // Add your code above this line

Your browser information:

User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36.

Link to the challenge:

h - 3 * d

This is the y value of the top of the bar. As you can see from the table of precedence ( MDN - Operator precedence ) multiplication is executed before the subtraction.
If you write this:

h * d

you’re note modifying the result by 3, you multiplicate the h value times d instead of subtract to h the value of 3*d
Below blurred the solution even if i think you realized the fix by yourself :slight_smile:

(h - 3*d) - 3

1 Like

Awesome, Thank you it was helpful.

1 Like