0

次の配列があります

var data = [ 
             [{"time": 1, "value": 2.1}, {"time": 2, "value": 1.1}],{"time": 3, "value": 3.1}],
             [{"time": 1, "value": 5.3}, {"time": 2, "value": 0.1}, {"time": 3, "value": 6.1}]
           ];

配列全体から最大の時間と値を見つける必要があります。うまくいかないコードは

var x = d3.scale.linear()
    .domain([1, d3.max(data, function(d,i){ return d[i].time;})])
    .range([0, width]);

何らかの理由で、3 ではなく 2 の最大時間を取得します。より多くのポイントを持つより大きなデータセットを使用しても、実際の最大値は取得されません。

どんな助けでも大歓迎です。

4

1 に答える 1

2

データは配列または配列です。「最大の最大」が必要な場合は、ネストを考慮する必要があります。それを行う1つの方法:

.domain([1, d3.max(data, function(arrayOfDs, i) {
  return d3.max(arrayOfDs, function(d, i) { return d.time; });      
})])
于 2013-02-20T05:13:34.010 に答える