Below is the javascript code that basically uses d3 to load csv data and create a scatterplot. The circles are not being rendered when the html page is loaded but when I run this in debug mode using firefox version 65 on mac and execute the code line by line it successfully renders the circles. When I inspect the DOM there are no circle elements appended under svg, however, in debug mode all the circles are appended with appropriate x, y coordinates.
<script type="text/javascript">
    d3.csv("movies.csv").then(function(data) {
        for (var i = 0; i <= data.length - 1; i++) {
            winNomVsRatings.push([parseFloat(data[i]["Rating"]), parseInt([data[i]["WinsNoms"]])]);
            budgetVsRatings.push([parseFloat(data[i]["Rating"]), parseInt([data[i]["Budget"]])]);
        }
    });
    //Dynamic, random dataset
    var dataset = [];
    dataset = winNomVsRatings;
    var w = 500;
    var h = 300;
    var padding = 30;
    var svg = d3.select("body")
                .append("svg")
                .attr("width", w)
                .attr("height", h)
    //Create scale functions
    var cScale = d3.scaleLinear()
                         .domain([0, 100])
                         .range([1,5]);
    var xScale = d3.scaleLinear()
                         .domain([0, 10])
                         .range([padding , w - padding * 2]);
    var yScale = d3.scaleLinear()
                         .domain([0, 300])
                         .range([h - padding , padding]);
    var xAxis = d3.axisBottom(xScale);
    var yAxis = d3.axisLeft(yScale);
    console.log("Before Appending Circles");
    console.log(dataset);
    svg.selectAll("circle")
                 .data(dataset)
                 .enter()
                 .append("circle")
                 .attr("fill", "none")
                 .attr("stroke", function(d){
                    console.log(d);
                    if (cScale(d[0]) > 0){
                        return "blue";
                    }else{
                        return "green";
                    }
                 })
                 .attr("cx", function(d){
                    return xScale(d[0]);
                 })
                 .attr("cy", function(d){
                    return yScale(d[1]);
                 })
                 .attr("r", function(d){
                    return Math.sqrt(Math.pow((cScale(d[0])), 2) + Math.pow((cScale(d[1])), 2));
                 });
    console.log("After Appending Circles");
    svg.append("g")
    .attr("class", "axis")
    .attr("transform", "translate(0," + (h - padding) + ")" )
    .call(xAxis);
    svg.append("g")
    .attr("class", "axis")
    .attr("transform", "translate(" + padding + ",0)" )
    .call(yAxis);
</script>
