Character frequency Chart

Character frequency Chart

by aninaslyan

HTML

<script src="https://canvasjs.com/assets/script/canvasjs.min.js"></script>
<br/><!-- Just so that JSFiddle's Result label doesn't overlap the Chart -->
<div id="chartContainer" style="height: 360px; width: 100%;"></div>

JavaScript

function getFrequency(string) {
    var freq = {}, dps = {};
    for (var i=0; i<string.length;i++) {
        var character = string.charAt(i);
        if (freq[character]) {
           freq[character]++;
        } else {
           freq[character] = 1;
        }
    }
    for (let key in freq) {
        freq[key] = freq[key] * 100 / string.length;
    }

    dps = Object.entries(freq).map(([label, y]) => ({ label, y }));

    return dps;
}

let str = "NASA or the National Aeronautics and Space Administration is the part of the United States government that deals with space exploration and aeronautics, the operating and designing of planes."
.toLowerCase();

const data = getFrequency(str);

var chart = new CanvasJS.Chart("chartContainer",
        {
          title:{
              text: "Character Frequency"              
          },
          axisX: {
    				interval: 1,
					},
  				data: [{              
            dataPoints: data
					}]
        });
        
chart.render();