質問
D3でいくつかのグラフを作成しようとしています。これまでのところそれが大好きですが、私は少し立ち往生しています。データポイントを保持するために1つの領域を作成し、軸とラベルを保持する別の領域を作成したいと思います。グラフをより効率的に更新するために、それよりもさらに細かい粒子を獲得すると思います。しかし、私が抱えている問題は、SVG内のサブ要素を選択できないように見えるということです。
これが私が持っているものです:
var graph = d3.select('#Graph svg')
if (graph[0][0] == null){
graph = d3.select('#Graph')
.append("svg:svg")
.attr("width",width)
.attr("height",height)
.attr("class","chart");
}
graph.append("svg:g")
.attr("id","data")
今、私はそのデータコンテナを選択する方法を見つけていません。私が試してみました
d3.select("#Graph svg data")
しかし、運はありません。何か案は?
解決
このコードを試してみましょう。
d3.select("#Graph svg").selectAll("g")
「G」とは、SVGノードの下ですべてのノード「G」を選択することを意味します。
他のヒント
データコンテナを作成するとき append()
, 、選択として変数に保存できます。
var dataContainer = graph.append("svg:g")
.attr("id","data");
この方法で行われた場合、D3の選択を再度作成する必要さえありません(同様の方法で行った方法で var graph
質問のコードの最初の行で)、この選択への参照は既にあなたのvarに保存されているため dataContainer
.
所属していません StackOverflow