Ho una tabella ad anello con cinque diversi archi al suo interno. I dati non verranno aggiornati, ma voglio avere una transizione dell'intero grafico disegnato come un cerchio quando la pagina si carica, a partire dall'angolo selezionato (nel mio caso 1.1 * PI). Ecco l'jsfiddle del grafico: http://jsfiddle.net/Nw62g/Animazione D3 grafico ad anello sul carico
var data = [
{name: "one", value: 10375},
{name: "two", value: 7615},
{name: "three", value: 832},
{name: "four", value: 516},
{name: "five", value: 491}
];
var margin = {top: 20, right: 20, bottom: 20, left: 20};
width = 400 - margin.left - margin.right;
height = width - margin.top - margin.bottom;
var chart = d3.select("body")
.append('svg')
.attr("width", width + margin.left + margin.right)
.attr("height", height + margin.top + margin.bottom)
.append("g")
.attr("transform", "translate(" + ((width/2)+margin.left) + "," +
((height/2)+margin.top) + ")");
var radius = Math.min(width, height)/2;
var color = d3.scale.ordinal()
.range(["#3399FF", "#5DAEF8", "#86C3FA", "#ADD6FB", "#D6EBFD"]);
var arc = d3.svg.arc()
.outerRadius(radius)
.innerRadius(radius - 20);
var pie = d3.layout.pie()
.sort(null)
.startAngle(1.1*Math.PI)
.endAngle(3.1*Math.PI)
.value(function(d) { return d.value; });
var g = chart.selectAll(".arc")
.data(pie(data))
.enter().append("g")
.attr("class", "arc");
g.append("path")
.style("fill", function(d) { return color(d.data.name); })
.attr("d", arc);
Come potrei fare per ottenere questo risultato?
Grazie per la risposta! Dopo aver provato la tua strada sono arrivato da un'altra soluzione che è più di quello che stavo cercando, ma il tuo esempio ha sicuramente aiutato! Ecco il mio codice finale: http: //jsfiddle.net/Nw62g/3/ – KobeBryant
Oh, vedo cosa stavi cercando ora. Sono contento che l'abbia aiutato comunque. –
@LarsKotthoff se vuoi cambiare la direzione dell'animazione, come faresti? – thetallweeks