Javascript 使用动态生成的JSON数据更新D3映射

Javascript 使用动态生成的JSON数据更新D3映射,javascript,json,d3.js,Javascript,Json,D3.js,我有一个D3地图,其中圆圈表示数量(圆圈大小)和百分比值(圆圈颜色)。所有这些都是在页面加载时生成的,界面中有一个jQuery UI滑块,允许用户在数据中的时间序列中循环-这会改变圆圈的大小和颜色。为了更改大小,我在jQuery的滑块中创建了一个函数,如下所示: slide: function( event, ui ) { redraw(ui.value.toString()); function redraw(val) { g.selectAll("circle") .transit

我有一个D3地图,其中圆圈表示数量(圆圈大小)和百分比值(圆圈颜色)。所有这些都是在页面加载时生成的,界面中有一个jQuery UI滑块,允许用户在数据中的时间序列中循环-这会改变圆圈的大小和颜色。为了更改大小,我在jQuery的滑块中创建了一个函数,如下所示:

slide: function( event, ui ) {
redraw(ui.value.toString());

function redraw(val) {
  g.selectAll("circle")
  .transition()
      .duration(1000).ease("linear")
      .attr("r",  function(d) { return radius(+d[val]); });
     }
}
这很有效。我还动态计算百分比,如下所示:

var percent = [];
   table.forEach(function(d) {
   percent [d.city]=(d[ui.value])/d.total;
})

其中“city”和“total”都是加载的csv文件中的字段。我想将这些百分比值加入到数据中,然后在滑动滑块时更改圆的颜色。csv和百分比数组都包含城市名称,所以我想我可以使用它来执行连接,我只是不确定如何进行连接。

只需使用与设置颜色相同的代码即可。好的,我知道了。我用我的.style填充圆圈,我只需要它看起来如下:.style(“fill”,function(d){if(percent[d.city]