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

时间:2015-10-26 09:37:17

标签: javascript html dictionary d3.js selectall

我正在使用voronoi弧图示例http://bl.ocks.org/mbostock/7608400 我可以成功地将我的数据集可视化以用于导入导出交易。

但是,我无法更改在特定地点生成的各个路径的属性。 我使用.airport-arcs来制作这些路径,我想要变量" stroke-width"或"颜色"个别行。 我尝试了几个选项,例如:

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 个答案:

答案 0 :(得分:0)

您的代码中有两个错误:

  1. 您没有选择要查找的元素。选择类.airport-arcs将返回包含所有路径的组。要单独操作路径,您需要选择如下:

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

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

    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); });