これはかなり単純なD3の質問です。データをいくつかのサークルにバインドしています。データは次のとおりです。
var linedata = [{ x:10, y:20},{x:5, y:30}];
そしてここに円があります:
var line = d3.svg.line().x(function(d) {
return x(d.x);
}).y(function(d) {
return y(d.y);
});
context.selectAll(".dot")
.data(linedata).enter()
.append("circle")
.attr("class", "dot")
.attr("cx", line.x())
.attr("cy", line.y())
.attr("r", 2);
ただし、一部のデータキーを使用するようにデータとコードを変更して、サークルにクラスがアタッチされるようにする場合は、次のようにします。
var mydata = [{ name: 'LHR', data: [{ x:10, y:20}, {x:5, y:15} ], { name: 'SFO', data : [{x:5, y:30}, {x:4, y:8}] }];
クラス属性を編集してデータキーを使用する方法を知っていますが、cx属性とcy属性を編集するにはどうすればよいですか?
context.selectAll(".dot")
.data(mydata).enter()
.append("circle")
.attr("class", function(d) { return "dot " + d.name; })
.attr("cx", line.x())
.attr("cy", line.y())
.attr("r", 2);
次のことを試しましたが、機能しません。
.attr("cx", function(d) { return line.x(d.data); })
これは、関数自体をcx属性に割り当てているようです。私は何が間違っているのですか?