Javascript 使用矩形输入、更新、退出?
基于这个问题: 可以在D3.js中动态地输入、更新和退出元素。在下面的代码中,可以使用文本对此进行解释Javascript 使用矩形输入、更新、退出?,javascript,d3.js,svg,rectangles,Javascript,D3.js,Svg,Rectangles,基于这个问题: 可以在D3.js中动态地输入、更新和退出元素。在下面的代码中,可以使用文本对此进行解释 var svg = d3.select("body").append("svg"); var dataset = [{ name: "foo" }, { name: "bar" }, { name: "baz" }, { name: "lorem" }, { name: "ipsum" }, { name: "dolot" }, { n
var svg = d3.select("body").append("svg");
var dataset = [{
name: "foo"
}, {
name: "bar"
}, {
name: "baz"
}, {
name: "lorem"
}, {
name: "ipsum"
}, {
name: "dolot"
}, {
name: "amet"
}];
print(dataset);
setInterval(()=> {
var data = dataset.slice(Math.random() * 6);
print(data);
}, 1000);
function print(data) {
var texts = svg.selectAll(".texts")
.data(data);
textsExit = texts.exit().remove();
textsEnter = texts.enter()
.append("text")
.attr("class", "texts");
textsUpdate = texts.merge(textsEnter).attr("x", 10)
.attr("y", (d, i) => 20 + i * 16)
.text((d,i) => "Node " + (i+1) + ", name: " + d.name);
}
现在,我用圆圈做了同样的尝试,效果很好。然后我试着用矩形来做这个,但它不起作用。以下是矩形示例的代码:
var rect= svg.selectAll(".rect")
.data(path1);
rectExit = rect.exit().remove();
rectEnter = rect.enter()
.append("rect")
.attr("class", "rect");
rectUpdate = rect.merge(rectEnter)
.attr("x", function(d, i) { return (10 + i * 2)})
.attr("y", 12)
.attr("width", 10)
.attr("height", 40)
.attr('stroke', "blue")
也许有人能帮我吗?
谢谢你好,德里克,我不明白这个问题:你的代码正常工作:我的错。谢谢你的提示。