This gist presents the top level items in the Israeli budget proposal for 2016 broken by expenditure type. The bar chart is an early experiment towards a more elaborate and comprehensive visualization. The tooltip structure translates to: The 2016 budget for [budget item title] of type [group first hierarchy level] / [group second hierarchy level] is [sum] in NIS (₪).
Data source: http://data.obudget.org/queries/225/source
Data exploration in Tableau: https://public.tableau.com/profile/mushon#!/vizhome/2016/Story2
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Adding Tooltips</title>
<script type="text/javascript" src="//d3js.org/d3.v3.js"></script>
<style type="text/css">
body {
background-color: #ddddff;
}
svg {
background-color: white;
}
title {
direction: rtl;
}
</style>
</head>
<body>
<script type="text/javascript">
var svg = d3.select("body")
.append("svg")
.attr("width", 1000)
.attr("height", 4000);
d3.csv("top_level_2016.csv", function(data) {
data.sort(function(a, b) {
//return d3.descending(a.sum, b.sum);
//If your numeric values aren't sorting properly,
//try commenting out the line above, and instead using:
//
return d3.descending(+a.sum, +b.sum);
//
//Data coming in from the CSV is saved as strings (text),
//so the + signs here force JavaScript to treat those
//strings instead as numeric values, thereby fixing the
//sort order (hopefully!).
});
var rects = svg.selectAll("rect")
.data(data)
.enter()
.append("rect");
rects.attr("x", 0)
.attr("y", function(d, i) {
return i * 10;
})
.attr("width", function(d) {
return d.sum / 100000;
})
.attr("height", 8)
.append("title")
.text(function(d) {
return "תקציב 2016 של \"" + d.saif + "\" (מסוג " + d.class_top + " / " + d.class_full + ") הוא ₪" + d.sum * 1000;
});
});
</script>
</body>
</html>