xAxis = g => g
.attr("transform", `translate(0,${height - margin.bottom})`)
.call(g => g.append("g")
.call(d3.axisBottom(x)
.ticks(interval)
.tickSize(-height + margin.top + margin.bottom)
.tickFormat(() => null))
.call(g => g.select(".domain")
.attr("fill", "#FB734B")
.attr("stroke", null))
.call(g => g.selectAll(".tick line")
.attr("stroke", "#FCE584")
.attr("stroke-opacity", d => d <= d3.timeMonth(d) ? 0 : 1)))
.call(g => g.append("g")
.call(d3.axisBottom(x)
.ticks(d3.timeMonth)
.tickPadding(0))
.attr("text-anchor", null)
.call(g => g.select(".domain").remove())
.call(g => g.selectAll("text").attr("x", 6)))