xxxxxxxxxx
<meta charset="utf-8">
<title>Ukrainian Parliament 2012-2014/03</title>
<link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.0.2/css/bootstrap.min.css">
<style>
#chart {
height: 500px;
}
.node rect {
cursor: move;
fill-opacity: .9;
shape-rendering: crispEdges;
}
.node text {
pointer-events: none;
text-shadow: 0 1px 0 #fff;
}
.link {
fill: none;
stroke: #000;
stroke-opacity: .2;
}
.link:hover {
stroke-opacity: .5;
}
.axis path,
.axis line {
fill: none;
stroke: #000;
shape-rendering: crispEdges;
}
.tick {
display: none;
}
.axis text {
font-size: 30px;
color: #bbb;
font-family: sans-serif;
font-weight: bold;
}
h1 {
margin-bottom: 5px;
margin-top: 5px;
font-size: 1em;
}
</style>
<body>
<div class="navbar navbar-inverse navbar-fixed-top" role="navigation">
<div class="container">
<div class="navbar-header">
<a class="navbar-brand" href="#"><h1>Changes in Parliamentary groups in Ukrainian Parliament (Verkhovna Rada/Верховна Рада) (through 03/2014)</h1></a>
</div>
</div>
</div>
<h1>Changes in Parliamentary groups in Ukrainian Parliament (through 03/2014)</h1>
<div style="position:relative;top:35px;z-index:1000;">
<div class="alert alert-info" >
How Ukraninian MPs were changing political groups, particularly during the beginning of 2014.<br/>
The former majority (through 2013) had Party of Regions (Партія регіонів) and Communist Party (Компартія України)
</div>
</div>
<p id="chart"></p>
<script src="https://d3js.org/d3.v2.min.js?2.9.1"></script>
<script src="sankey.js"></script>
<script>
var margin = {top: 20, right: 1, bottom: 60, left: 1},
width = 960 - margin.left - margin.right,
height = 450 - margin.top - margin.bottom;
var formatNumber = d3.format(",.0f"),
format = function(d) { return formatNumber(d); },
color = function(d){ return d.color; };//d3.scale.category20();
var svg = d3.select("#chart").append("svg")
.attr("width", width + margin.left + margin.right)
.attr("height", height + margin.top + margin.bottom)
.append("g")
.attr("transform", "translate(" + margin.left + "," + margin.top + ")");
var sankey = d3.sankey()
.nodeWidth(15)
.nodePadding(10)
.size([width, height]);
var path = sankey.link();
d3.json("sankey.json", function(energy) {
sankey
.nodes(energy.nodes)
.links(energy.links)
.layout(32);
var link = svg.append("g").selectAll(".link")
.data(energy.links)
.enter().append("path")
.attr("class", "link")
.attr("d", path)
.style("stroke-width", function(d) { return Math.max(1, d.dy); })
.sort(function(a, b) { return b.dy - a.dy; });
link.append("title")
.text(function(d) { return d.source.name + " → " + d.target.name + "\n" + format(d.value); });
var node = svg.append("g").selectAll(".node")
.data(energy.nodes)
.enter().append("g")
.attr("class", "node")
.attr("transform", function(d) { return "translate(" + d.x + "," + d.y + ")"; })
.call(d3.behavior.drag()
.origin(function(d) { return d; })
.on("dragstart", function() { this.parentNode.appendChild(this); })
.on("drag", dragmove));
node.append("rect")
.attr("height", function(d) { return d.dy; })
.attr("width", sankey.nodeWidth())
.style("fill", function(d) { return d.color; })
.style("stroke", function(d) { return d3.rgb(d.color).darker(2); })
.append("title")
.text(function(d) { return d.name + "\n" + format(d.value); });
node.append("text")
.attr("x", -6)
.attr("y", function(d) { return d.dy / 2; })
.attr("dy", ".35em")
.attr("text-anchor", "end")
.attr("transform", null)
.text(function(d) {
if (d.x > 900) return d.name; else return '';
})
.filter(function(d) { return d.x < width / 2; })
.attr("x", 6 + sankey.nodeWidth())
.attr("text-anchor", "start");
function dragmove(d) {
d3.select(this).attr("transform", "translate(" + d.x + "," + (d.y = Math.max(0, Math.min(height - d.dy, d3.event.y))) + ")");
sankey.relayout();
link.attr("d", path);
}
names = ['12/2012','01/2013','01/2014','04/2014'];
var x3 = d3.scale.ordinal()
.rangeRoundBands([-width/4/2+50, width+width/4/2-50])
.domain(names);
var xAxis3 = d3.svg.axis()
.scale(x3)
.orient("top");
bot = height + 2*margin.bottom/3;
svg.append("g")
.attr("class", "x axis")
.attr("transform", "translate(0,"+bot+")")
.call(xAxis3);
});
</script>
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-8592359-13', 'ocks.org');
ga('send', 'pageview');
</script>
Modified http://d3js.org/d3.v2.min.js?2.9.1 to a secure url
https://d3js.org/d3.v2.min.js?2.9.1