0

NB: 私は javascript と d3.js (昨日から始めた) にまったく慣れていないので、明らかなことを見落としていたら申し訳ありません。

d3 によるデータの処理方法とデータ バインディングのしくみを理解するのに問題があります。このヒートマップを再作成しようとし ていますが、開始テーブルにはインデックスではなくラベルを含める必要があるという違いがあります。(データは db リクエストから来ています)。

 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

使用している関数は、インデックスを 2 番目の変数として、データを最初の変数として提供するため、データ変数を呼び出す必要がありますが、無視できます。

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