D3' data()绑定的格式

时间:2014-05-27 00:21:35

标签: d3.js

传递给d3 .data()的内容所需的格式是什么?

在这个jsfiddle中,我尝试为每个指标创建几个<div>元素。不幸的是,没有任何事我假设这与不正确的数据结构有关?

http://jsfiddle.net/GppWz/

1 个答案:

答案 0 :(得分:1)

这里的主要问题是您尝试使用哈希作为数据源,而d3则希望您的数据采用数组格式。

如果可以,请修改数据源,以便以阵列格式接收数据。如果无法做到这一点,您可以使用d3.entries函数将对象转换为数组:

var listContainers = d3.select('#lists').selectAll('div')
  .data(d3.entries(data))
  .enter().append('div')
  .attr('class', 'listContainer');
listContainers.append('h5')
  .text(function(d) {
    return d.key;
  });
var item = listContainers.selectAll('.item').data(function(d) {
  return d.value;
}).enter()
  .append('div')
  .attr('class', 'item')
  .text(function(d) {
    return 'average_dif = ' + d.average_dif;
  });
// ...