0

注意:我对 javascript 和 d3.js(昨天开始)完全陌生,如果我忽略了一些明显的东西,我深表歉意。

我在理解 d3 如何处理数据以及数据绑定如何工作方面存在问题。我正在尝试重新创建此热图 ,不同之处在于我的起始表应包含标签而不是索引。(数据来自数据库请求)。

 day hour   value
 Mon am 16
 Mo pm 20
 Tue am 0
 Tue pm 0
 Wed  am 45
 Wed pm 8

我知道 d3.js 有一个变量,变量 d (用于数据)和 i 用于索引,但我不知道如何使用它。

到目前为止,我已尝试替换这些行

          .attr("x", function(d) { return (d.hour - 1) * gridSize; })
          .attr("y", function(d) { return (d.day - 1) * gridSize; })

          .attr("x", function(d,i) {return d.hour, i * gridSize;})  
          .attr("y", function(d,i) {return d.day, i * gridSizee;})  

但我得到了一个奇怪的盒子排列。

我错过了什么?

我真正的问题是:如何访问索引而不是值?

提前致谢

4

1 回答 1

1

The function you're using provides the index as the second variable and the data as the first, so you need to call the data variable but then you can ignore it:

 .attr("x", function(d,i) {return i * gridSize;}) 
于 2013-06-13T16:15:43.437 回答