drawLine = (dataset) => {
debugger;
const data = mutable dataset
const yScale = d3.scaleLinear()
.domain(d3.extent(data, yAccessor))
.range([dimensions.boundedHeight, 0])
const freezingTemperaturePlacement = yScale(32)
const freezingTemperatures = bounds.select(".freezing")
.attr("x", 0)
.attr("width", dimensions.boundedWidth)
.attr("y", freezingTemperaturePlacement)
.attr("height", dimensions.boundedHeight - freezingTemperaturePlacement)
const xScale = d3.scaleTime()
.domain(d3.extent(data, xAccessor))
.range([0, dimensions.boundedWidth])
const lineGenerator = d3.line()
.x(d => xScale(xAccessor(d)))
.y(d => yScale(yAccessor(d)))
const lastTwoPoints = data.slice(-2)
const pixelsBetweenLastPoints = xScale(xAccessor(lastTwoPoints[1])) - xScale(xAccessor(lastTwoPoints[0]))
const line = bounds.select(".line")
.attr("d", lineGenerator(data))
const yAxisGenerator = d3.axisLeft()
.scale(yScale)
const yAxis = bounds.select(".y-axis")
.transition().duration(1000)
.call(yAxisGenerator)
const xAxisGenerator = d3.axisBottom()
.scale(xScale)
const xAxis = bounds.select(".x-axis")
.transition().duration(1000)
.call(xAxisGenerator)
}