JSFiddle - React, Tailwind, and code Playground

HTML

<link rel="stylesheet" href="http://nvd3.org/assets/css/nv.d3.css">
<script src="http://nvd3.org/assets/lib/d3.v3.js"></script>
<script src="http://nvd3.org/assets/js/nv.d3.js"></script>
<div id="chartDisribution">          
    
</div>

JavaScript

var values = [518, 514, 512, 514, 518, 498, 510, 516, 520, 508, 504, 504, 517, 494, 492, 491, 515, 507, 492, 527, 509, 500, 491, 506, 517, 516, 518, 505, 514, 486, 516, 504, 503, 490, 515, 498];

var bins=[450,456,462, 468,474,480,486,492,498,504,510,516,522,528,534,540,546,552,558,564]


var bin_distance = 6;
var num_records = 36;


function mean (arr) {

        var sum = 0;
        var length = arr.length;
        for (var i = 0; i < length; i++) {

            sum = sum + arr[i]
        }

        var mean = sum / length;
        return mean;

    }

    function stdSample(arr) {
                
        return Math.sqrt(variance(arr, 's'));

    }


 	 function variance(arr, std_type) {

        var sum = 0;
        var v = 0;
        var arr_length = arr.length;
        var this_mean = mean(arr);

        if (arr_length > 1) {
            for (var i = 0; i < arr_length; i++) {

                v = v + (arr[i] - this_mean) * (arr[i] - this_mean);
            }

            if (std_type == 's') {

                return v / (arr_length - 1);
            }
            else {

                return v / arr_length;
            }
        }
        else {

            return 0;
        }
    }

var average = mean(values);
var std = stdSample(values);

var length = bins.length;
var ni1 = 1/(std*Math.sqrt(2*Math.PI));

var norm ="norm data"

for(var i=0;i<length;i++){

	var ni2 = Math.exp(-1*((bins[i]-average)*(bins[i]-average))/(2*	(std*std)))	
    
    var normdata = Math.round(ni1*ni2*bin_distance*num_records);
    norm = norm +"<p>"+ bins[i]+" - "+normdata+"</p>"
}

document.getElementById('chartDisribution').innerHTML = norm;