1

我有一个看起来像这样的数组,其中每个项目都是一个机场,由其名称和航班频率定义:

var mydata = [
    {'name' : 'LHR', 'flights' : [ { x : 0, y : 1520 }, { x : 1, y : 1990 } ] },
    {'name' : 'SFO', 'flights' : [ { x : 0, y : 2090 }, { x : 1, y : 2170 } ] }
];

我想用 D3.js 为数组中的每个条目画一条线。我想将flights数据绑定到该行,并且我想给该行一个对应于 的类名name,以便最终得到如下所示的路径:

<path class="LHR" d="...flights data..."></path>
<path class="SFO" d="...flights data..."></path>

如何绑定数据并同时为该行指定类名?我可以做这样的事情吗?

svg.selectall("path.line")
   .data(mydata, function(d) { return d.flights})
   .enter()
   .append("path")
   .attr("class", "line")
   .attr("class", function(d) { return d.name})
   .attr("d", line);

我不确定这个调用是否data()会正常工作。或者也许会?如果需要,我可以重组我的数据。

4

1 回答 1

0

想通了 - 答案是在行中进行函数调用attr,而不是data在行中:

svg.selectAll("path.line")
  .data(mydata)
  .enter()
  .append("path")
  .attr("class", function(d) { return 'line ' + d.name; })
  .attr("d", function(d) { return line(d.flights); });​
于 2012-09-04T08:51:57.013 回答