d3 でパス描画アニメーションを行う 1 つの方法は、dash-array および dash-offset 属性を使用することです。
できることは、dashoffset をパスの合計の長さに設定してから、dashoffset を時間の経過とともにゼロになるまで減らすことです。これにより、描画されるパスがシミュレートされます。stroke-dasharrayおよびstroke- dashoffsetに関する SVG ドキュメントを確認してください。
概念的には、あなたがしていることはこれです:
行の長さが 4 単位 (----) であるとします。dasharray を (----,,,,) に設定しています。つまり、4 つのユニットと 4 つのスペースです。ダッシュオフセットを 4 単位に設定すると、線は表示スペースの左側に 4 単位配置されます。次に、dashoffset を 0 に減らすと、線は (-,,,,) のようになり、次に (--,,,,) のようになり、線全体が描画されるまで続きます。
var line = d3.svg.line()
.x(function(d) { return x(d.date); })
.y(function(d) { return y(d.price); });
var path = svg.append("path")
.attr("d", line(data))
.classed("line", true);
var pathLength= path.node().getTotalLength();
path
.attr("stroke-dasharray", pathLength + " " + pathLength)
.attr("stroke-dashoffset", pathLength)
.transition()
.duration(2000)
.ease("linear")
.attr("stroke-dashoffset", 0);
-
ここの Duopixel の投稿から学びました。