私はd3.jsの初心者なので、親切にしてください:)
次のデータセットがあります。
var dataset = [ [d3.time.hour.utc.offset(now, -5), 1, 10], [d3.time.hour.utc.offset(now, -4), 2, 20], [d3.time.hour.utc.offset(now, -3), 3, 30], [d3.time.hour.utc.offset(now, -2), 4, 40], [d3.time.hour.utc.offset(now, -1), 5, 50], [now, 6, 60], ];
2 つの質問です。
d3 は、データセット配列の y 軸データ (0 番目以外のすべての列、0 番目の列は x 軸 (時間)) の最大値を見つけるためのより良いアプローチを提供しますか? 現在、データセット配列全体をループして、最初の列を除いて 2 番目の配列を作成しています。おそらく、これに完全に使用する必要がある配列以外のより良いデータ構造がありますか?
var data_arr = []; for (row in dataset){ for (col=1;col < dataset[row].length; col++){ data_arr.push(dataset[row][col]); } } var yScale = d3.scale.linear() .domain([0, d3.max(data_arr)]) .range([h - padding, padding]);
それが解決されたら、一般的に複数の y 軸の値をグラフ化する方法を決定する必要があります。複数のy軸値が必要になる前に、これはうまくいきました:
svg.selectAll("circle") .data(dataset) .enter() .append("circle") .attr("cx", function(d) { return xScale(d[0]); }) .attr("cy", function(d) { return yScale(d[1]); }) .attr("r", 2);
完全なコンテキストについては、ここでコード付きのグラフをご覧ください: http://jsbin.com/edatol/1/edit どんな助けも大歓迎です!