The following example shows a basic usage of d3.js to render a bargraph of country's population.
Create a data.csv
file with the following content:
Country,Population Switzerland,8000000 Germany,80000000 United States,330000000
Then, create an index.html file with the following content:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>D3 Barchart</title> <script src="https://d3js.org/d3.v4.min.js"></script> <style media="screen"> body, html { height: 100%; background: #eee; } body { display: flex; align-items: center; justify-content: center; } .list .country { background-color: red; padding: 10px 10px; border-radius: 3px; margin: 10px 0; color: black; font-family: sans-serif; } </style> </head> <body> <div class="list"> </div> <script type="text/javascript"> // convert is called with every row in the csv file function convert(d) { d.Population = parseInt(d.Population); return d; } // load csv and invoke callback with the loaded data d3.csv('data.csv', convert, function(data){ // prepare a scale for the population domain var scale = d3.scaleLinear() .domain([0, d3.max(data, function(d){ return d.Population; })]) .range([0, 1000]); // create a selection of divs with the class country // in the div with the class list d3.select('.list').selectAll('.country') // join with the loaded data .data(data) // compute set of added rows .enter() // append a new div to the selection .append('div') // set class .attr('class', 'country') // map width of element to population .style('width', function(d){ return scale(d.Population) + 'px'; }) // set content to the country's name .text(function(d){ return d.Country; }); }); </script> </body> </html>
Adjust the example to your needs.