Вопрос

Я пытаюсь создать несколько графиков в 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")

Но не повезло. Любые идеи?

Это было полезно?

Решение

Попробуем этот код.

d3.select("#Graph svg").selectAll("g")

«G» означает выбрать весь узел «G» под узлом SVG.

Другие советы

При создании контейнера данных с append(), вы можете сохранить его в качестве выбора в переменную.

var dataContainer = graph.append("svg:g")
    .attr("id","data");

Если сделано таким образом, вам даже не нужно будет снова сделать выбор D3 (аналогичным образом вы сделали с var graph В 1 -й строке кода в вашем вопросе), потому что ссылка на этот выбор уже хранится в вашем VAR dataContainer.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top