d3 voronoi arc Map - .arcs 的控制属性

d3 voronoi arc Map - control attributes of the .arcs

我正在使用 voronoi arc map 示例 http://bl.ocks.org/mbostock/7608400 我可以成功地可视化我的进出口贸易数据集。

但是我无法更改在特定位置生成的各个路径的属性。 我使用 .airport-arcs 来创建这些路径,并且我希望每个行的变量 "stroke-width" 或 "color" 。 我尝试了几种选择,例如:

var color = d3.scale.category20();
...       
var td = svg.selectAll(".airport-arcs")
td.style("stroke", function(d) { return color(d.count); });
td.attr("stroke-width", function(d) { return Math.log(d.count); });

这似乎以相同的数量更改所有笔画宽度,而在给定位置生成的所有链接的颜色都不同(但不同位置之间不同)。 关于如何更改各个路径的属性有什么建议吗?

您的代码中有两个错误:

  1. 您没有select正在寻找的元素。选择 class .airport-arcs 将 return 包含所有路径的组。要单独操作路径,您需要像这样 select:

    var td = svg.selectAll(".airport-arcs path")
    
  2. 您访问错误属性。 .count 不是绑定到路径的数据的直接 属性,而是机场对象的直接 属性。 d.source.count 就是您要找的。

您更正后的代码如下所示:

var color = d3.scale.category20();

var td = svg.selectAll(".airport-arcs path")
td.style("stroke", function(d) { return color(d.source.count); });
td.attr("stroke-width", function(d) { return Math.log(d.source.count); });