rveciana - jsl-2015-grafico-con-transiciones

JSL 2015: Gráfico con transiciones

Open raw page in new tab

Segundo ejemplo del taller Mapas web interactivos con D3.js en el programa de las 9as Jornadas SIG Libre .

Al ejemplo anterior, añadimos transiciones y textos.

Los datos son de la encuesta GAD3, del 9-13 de enero de 2015. Fuente: Wikipedia

<!DOCTYPE html>
<meta charset="utf-8">
<style>

</style>
<body>
<script src="http://d3js.org/d3.v3.min.js"></script>

<script>
var width = 960,
    height = 500;



var svg = d3.select("body").append("svg")
    .attr("width", width)
    .attr("height", height);
d3.csv("https://cdn.rawgit.com/rveciana/5919944/raw//encuesta.csv", function(d){

    var r = d3.scale.linear()
    .domain([0, d3.max(d, function(d) { return parseFloat(d.Porcentaje); })])
    .range([1, 100]);

    svg.selectAll("rect")
        .data(d)
        .enter()
        .append("rect")
        .attr("x", function(d, i) {return i*50;})
        .attr("y", 100)
        .attr("width", 40)
        .attr("height", 0)
        .attr("fill", function(d){ return d3.rgb(d.Color).darker();})
        .transition()
            .duration(1000)
            .delay(function(d, i){return i * 200;})
            .ease("linear") 
            .attr("y", function(d) { return 100 - r(d.Porcentaje); })
            .attr("height", function(d) { return r(d.Porcentaje); })
            .attr("fill", function(d){ return d3.rgb(d.Color); });

    svg.selectAll(".partido")
        .data(d)
        .enter()
        .append("text")
        .attr("class","partido")
        .text(function(d){return d.Partido;})
        .attr("x", 0)
        .attr("y", 0)
        .attr("transform", function(d, i) {return "translate("+((i*50)+26)+",95) rotate(-90)";});

    });

</script>