When creating axis in d3, I would say the hard part is finding out the proper scales for both your axes. Once you have them, as we do here, creating a d3 axis object is quite simple. Since our code’s getting slightly more verbose. At least compared to the Dimple JS code we had earlier. I’ve added comments to each section of the d3 code, to describe what functions performed with N. I’ve also moved the debugger down from the top of the file to right before we create our axes. In this case, the axis function.axis is in d3’s svg module. To create an svg axis, and we need to specify a scale using .scale to tell d3, what the range of the axis represents. In this case passing in time_scale for our x axis. And since d3’s so flexible, we can chain other functions to our axis, to customize its appearance. In this case, we want our ticks to be, every two years. In this case to specify years we go into the d3 time module and specify years. If we wanted a finer grain we could specify a different time object. For example, let’s say days. But in our case, since the World Cup happens only every four years, specifying every tick mark every two years, should be more than enough. And here we do the same thing for our y axis. Passing the scale of count_scale, which represents our attendance range and domain, and since this is the y axis, we specified that we want to orient it on the left. So we now have our d3 axis objects, but what we don’t have, is the axis in svg on our page.