我正在尝试在D3中创建一些图表。到目前为止爱它,但我有点卡住了。 我想创建一个区域来保存数据点,另一个区域来保存轴和标签。 我想我会比这更精细,以更高效地更新图表。但我遇到的问题是我似乎无法在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")
但没有运气。任何想法?
答案 0 :(得分:21)
让我们试试这段代码。
d3.select("#Graph svg").selectAll("g")
“g”表示在svg节点下选择所有节点“g”。
答案 1 :(得分:1)
使用append
创建数据容器时,可以将选择保存到变量。
var dataContainer = graph.append("svg:g")
.attr("id","data");
如果以这种方式完成,您甚至不需要再次进行选择(以与第1行var graph
类似的方式),因为选择已存储在var中dataContainer
。