将路径元素的类别与数据集进行比较

时间:2016-12-02 12:42:04

标签: d3.js datamaps

我是d3的新手,我想用d3数据图制作一个等值线图,所以如果必须将路径类与我的数据集进行比较。到目前为止,我确实设法获得路径

HTML

  <script src="//cdnjs.cloudflare.com/ajax/libs/d3/3.5.3/d3.min.js"</script>
  <script src="//cdnjs.cloudflare.com/ajax/libs/topojson/1.6.9/topojson.min.js"></script>
  <script src="/d3map/datamaps.world.min.js"></script>
  <div id="container" style="position: relative; width: 500px; height: 300px;"></div>
  <script src="d3map.js"></script>

js code

var map = new Datamap({element: document.getElementById('container'),
  })
  var country = d3.selectAll("path")

Country是一个包含177个元素的数组 国家中的一个元素具有以下形式:

<path d="bunch of numbers" class="datamaps-subunit AFG" style="etc"></path>

我想查看班级中的国家/地区代码(例如AFG)是否与我的数据集中的国家/地区代码相匹配。

Country.class提供未定义的

我可能遗漏了一些非常明显的东西

1 个答案:

答案 0 :(得分:0)

以下是一个示例小提琴:https://jsfiddle.net/g2v5sgmz/

您可以使用filter方法过滤数组中的特定分类元素,如下所示:

var country = d3.selectAll("path");

var afg = country.filter(function(d,i){
   if( d3.select(this).classed("AFG") ){
        return d3.select(this);
   }
})