javascript - 如何使用新数据更新(但不重绘)d3-geomap

标签 javascript d3.js geomap

我有这个函数来制作 d3-geomap,当我的应用程序首次加载时调用该函数。 但是如何使用新数据更新 map 而不重新绘制整个新 map ?

function buildMap(dataToShow){

        var map = d3.geomap.choropleth()
                .geofile('https://d3-geomap.github.io//d3-geomap/topojson/world/countries.json')
                .colors(colorbrewer.YlGnBu[9]) 
                .column('figure') 
                .format(function(d) {return (Math.round(d * 10) / 10).toFixed(2)+"%";}) 
                .legend(true)
                .unitId('ccode')
                .domain(chartDomain)
                .zoomFactor(5);


         d3.select('#map')
            .datum(dataToShow)
            .call(map.draw, map);
    }

最佳答案

假设您的数据位于名为 newData 的列中,那么您需要进行以下调用

map.column(newData).update()

这应该可以自行处理所有事情。

关于javascript - 如何使用新数据更新(但不重绘)d3-geomap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38624829/

相关文章:

javascript - 在 AngularJS 中,为什么指令需要自身?

javascript - 使用 jQuery .on() 同时绑定(bind)到就绪和调整大小

javascript - 将元素附加到 d3.js 中的现有元素

javascript - 从脚本 : "Data table is not defined" 中的电子表格获取数据

javascript - SCRIPT5039 : Redeclaration of const property - IE 9 Javascript issue

javascript - 使用 javascript 隐藏具有空值的选项

javascript - 将 Handlebars 与 D3.js 结合使用

javascript - D3.js - 从 JSON 创建多环圆环图数据集

javascript - 如何在折线地理图中增加鼠标悬停 “hit area”

angularjs - Mapbox.js 不适用于 Angular.js