.delay()不是d3中的函数

.delay() is not a function in d3

本文关键字:函数 d3 不是 delay      更新时间:2023-09-26

到目前为止,我导入的唯一库是d3,我检查了d3.js文件以确保函数存在。确实如此。

我试图用D3和AngularJS书中的数据可视化来做这个例子。以下是有问题的代码(直接从书中删除注释):

<svg width="800" height="500"></svg>
<script type="text/javascript">
var data = [];
setInterval(function(){
    if (data.length < 8) {
        data.push(Math.random());
    }
    else {
        data = [];
    }
    draw();
}, 1000);
function draw() {
    var svg = d3.select('svg');
    var circles = svg.selectAll('circle').data(data);
    circles
    .attr('fill', 'orange');
    circles.enter()
    .append('circle')
    .attr('fill', 'red')
    .attr('r', 40)
    .attr('cx', function(d, i) { return i*100 + 50; })
    .attr('cy', 50);
    circles
    .style('stroke', 'black');
    circles.exit()
    .delay()
    .remove();
}

我遇到的问题特别是在

circles
.exit()
.delay()
.remove();

它说延迟函数"不是函数",尽管它是。我试图将书中的代码移植到一个全新的项目中,但它不起作用。(如果有区别的话,我会使用chrome浏览器)。

感谢

delay()不是selections的函数。但是,您可以调用delay()进行转换。因此:

circles
  .exit()
  .transition()
  .delay()
  .remove();