2016-04-09 5 views
0

Ich habe versucht, eine Reihe von D3 Kreisdiagrammen zu erstellen, die zeichnen, wenn eine JSON-Anforderung zurückgegeben wird.D3 arcTween - Aktualisieren von Übergängen für mehrere Kreisdiagramme

Ich kann die Beschriftungen und Hintergrundpfade funktionieren, aber ich bin nicht in der Lage, die Vordergrundpfade zu zeichnen. Dieses Problem tritt nur auf, wenn ich versuche, mehrere Tortendiagramme zu erstellen.

Ein Beispiel für meine aktuellen Fortschritt finden Sie hier:
http://jsbin.com/wubohidefo/edit?html,js,output

Jede Hilfe Sie die Vordergrund- Wege zu bekommen liefern kann arbeiten oder erklären, was dies verursacht würde sehr geschätzt werden.

Antwort

1

Wenn Sie zurück arc(d) in arcTween:

function arcTween(transition, newAngle) { 
    transition.attrTween("name", function(d) { 

     var interpolate = d3.interpolate(d.endAngle, newAngle); 
     return function(t) { 
      d.endAngle = interpolate(t); 
      text.text(((d.endAngle/τ)*10).toFixed(1)); 
      return arc(d); 
     }; 
    }); 
} 

Sie sollten stattdessen foreground.attr("d", arc) werden Einstellung:

function arcTween(transition, newAngle) { 
    transition.attrTween("name", function(d) { 

     var interpolate = d3.interpolate(d.endAngle, newAngle); 
     return function(t) { 
      d.endAngle = interpolate(t);     
      text.text(((d.endAngle/τ)*10).toFixed(1)); 
      foreground.attr("d", arc); 
     }; 
    }); 
} 
+1

Danke MrHen! – RMC

+0

MrHen, (hoffentlich können Sie das noch erhalten) wenn die Daten gefiltert sind und die Funktion erneut aufgerufen wird, um die Diagramme zu aktualisieren, wie würde ich es von seiner letzten Position zeichnen anstatt von 0 zu zeichnen? Wenn zum Beispiel ein Diagramm bei 30 ist und der neue Wert 70 ist, wie bringt man es dazu, den Vordergrund nur von 30 auf 70 zu bewegen, nicht von 0 auf 70? – RMC

+0

aktualisiert Beispiel: http://jsbin.com/gododekala/edit?html,js,output – RMC

Verwandte Themen