d3 line 関数にフィードする lineData 配列を変更して、5 秒ごとに一連の線を描画しようとしています。
関連するコードの抜粋を次に示します。
var svg = d3.select("body").append("svg:svg")
.attr("width", width + margin.left + margin.right)
.attr("height", height + margin.top + margin.bottom)
.attr("id", "svgMain")
.append("g")
.attr("transform", "translate(" + margin.left + "," + margin.top + ")")
.call(drag);
var lines = svg.append("g")
.attr("id", "lines");
function changingLines() {
lines.selectAll("line")
.data(lineData)
.enter().append("line")
.attr("x1", function(d, i) { console.log(d[0][0]); return d[0][0];})
.attr("y1", function(d, i) { console.log(d[0][1]); return d[0][1];})
.attr("x2", function(d, i) { return d[1][0];})
.attr("y2", function(d, i) { return d[1][1];})
.style("stroke", "#000")
.style("stroke-width", "0.5")
.attr("class", "lines");
lines.selectAll("line").exit().remove();
setTimeout(changingLines, 2000);
}
lineData 配列の異なる値を使用して、関数 changingLines() を 2 秒ごとに呼び出します。
エラーが表示されます: Uncaught TypeError: Object has no method 'exit
私は何を間違っていますか?