繁体   English   中英

使用新数据更新 d3 图表,未删除旧数据点

[英]updating d3 chart with new data, the old data points not removed

我正在尝试使用从后端获取的新数据更新我的 d3 气泡图。 但是,似乎新数据被添加到图表中但旧数据点没有被删除? 这里有什么问题? 这是我的 function:

function updateGeoData(ds, de) {
        console.log("hit 233")
        const size = d3.scaleLinear()
            .domain([1, 100])  // What's in the data
            .range([4, 50])  // Size in pixel
        let updateData = $.get("/update_geo_data", {"ds":ds, "de":de});
        updateData.done(function (result) {
            var circles = svg.selectAll("myCircles").data(result, function(d) { return d; });
            circles.attr("class", "update");
            circles.enter().append("circle")
                .merge(circles)
                    .attr("cx", d => projection([d.long, d.lat])[0])
                    .attr("cy", d => projection([d.long, d.lat])[1])
                    .attr("r", d => size(d.count))
                    .style("fill", "69b3a2")
                    .attr("stroke", "#c99614")
                    .attr("stroke-width", 2)
                    .attr("fill-opacity", .4);
            circles.exit().remove();
        });
}

这部分是你的问题:

svg.selectAll("myCircles")

myCircles什么都不是,所以选择总是空的,你总是只有 append 给它。

svg.selectAll("circle")应该可以作为您的选择。 这将 select 当前绘制的所有圆圈并适当地输入、更新、删除。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM