JSFiddle - React, Tailwind, and code Playground
by rolfsf
HTML
<script src="http://d3js.org/d3.v3.min.js"></script>
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<div id="root">
</div>
</body>
</html>
JavaScript
var data = {
"regions": ["Federal", "Tigray", "Afar", "Amhara", "Oromia", "Gambella", "Addis Ababa", "Dire Dawa", "Harar", "Benishangul-Gumuz", "Somali", "SNNPR "],
"institutions": [0, 0, 34, 421, 738, 0, 218, 22, 22, 109, 0, 456]
}
var data2 = {
[60000, 4],
[70000, 5],
[80000, 2]
}
draw(data);
function draw(data) {
var margin = {
"top": 10,
"right": 10,
"bottom": 30,
"left": 50
},
width = 700,
height = 300;
var x = d3.scale.ordinal()
.domain(data.regions.map(function(d) {
return d.substring(0, 2);}))
.rangeRoundBands([30, width], 0);
var y = d3.scale.linear()
.domain([0, d3.max(data.institutions)])
.range([height, 0]);
var xAxis = d3.svg.axis().scale(x).orient("bottom");
//var yAxis = d3.svg.axis().scale(y).orient("left");
var svgContainer = d3.select("#root").append("svg")
.attr("class", "chart")
.attr("width", width + margin.left + margin.right)
.attr("height", height + margin.top + margin.bottom).append("g")
.attr("transform", "translate(" + margin.left + "," + margin.right + ")");
svgContainer.append("g")
.attr("class", "x axis")
.attr("transform", "translate( 0," + height + ")")
.call(xAxis);
svgContainer.append("g")
//.attr("class", "y axis").call(yAxis)
.append("text")
.attr("transform", "rotate(-90)")
.attr("y", 6)
.attr("dy", ".71em")
.style("text-anchor", "end")
.text("Institutions");
svgContainer.selectAll(".bar").data(data.institutions).enter().append("rect")
.attr("class", "bar")
.attr("x", function(d, i) {
return i * x.rangeBand();
})
.attr("y", function(d) {
return y(d);
})
.attr("width", function(){
return 20;
})
.attr("height",...