d3で視覚化するためのデータセットを準備するためにループを使用しようとしましたが、ループからデータを取得するときに問題が発生しました。
2つのデータセットがあるとしましょう。
setX = [1,2、3、4、5]およびsetY = [10、20、30、40、50]
そして、2つのデータセットから座標xとyの配列を取得するためのforループを作成します。
var point = new Object();
var coordinate = new Array();
for(var i=0; i < setX.length;i++){
point.x = setX[i];
point.y = setY[i];
coordinate.push(point);
}
配列からデータをプルバックして描画します
var d3line = d3.svg.line()
.x(function(d){return d.x;})
.y(function(d){return d.y;})
.interpolate("linear");
しかし、d3line(座標)のxおよびyデータの値は常に5と50です。これを修正する正しい方法はありますか?
これがコードの例です
<div id="path"></div>
<script>
var divElem = d3.select("#path");
canvas = divElem.append("svg:svg")
.attr("width", 200)
.attr("height", 200)
var setX = [1,2 ,3, 4, 5];
var setY = [10, 20, 30, 40, 50];
var point = new Object();
var coordinate = new Array();
for(var i=0; i < setX.length;i++){
point.x = setX[i];
point.y = setY[i];
coordinate.push(point);
}
var d3line = d3.svg.line()
.x(function(d){return d.x;})
.y(function(d){return d.y;})
.interpolate("linear");
canvas.append("svg:path")
.attr("d", d3line(coordinate))
.style("stroke-width", 2)
.style("stroke", "steelblue")
.style("fill", "none");
</script>
このコードの私の例はhttp://jsfiddle.net/agadoo/JDtqf/にもあります。