Question

Je suis en train de créer des graphiques dans D3. amour Jusqu'à présent, mais je suis un peu coincé obtenir. Je veux créer une zone pour tenir les points de données et un autre pour tenir l'axe et les étiquettes. Je pense que je vais aller encore plus à grains fins que pour faire la mise à jour du graphique plus efficace. Mais la question que j'ai est que je ne peux pas sembler sélectionner des éléments de sous dans le SVG.

Voici ce que j'ai:

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")

Maintenant, je ne l'ai pas trouvé un moyen de sélectionner le conteneur de données. J'ai essayé

d3.select("#Graph svg data")

Mais pas de chance. Des idées?

Était-ce utile?

La solution

ESSAYONS ce code.

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

"g" des moyens pour sélectionner tous les noeuds "g" sous le noeud SVG.

Autres conseils

Lorsque vous créez votre conteneur de données avec append(), vous pouvez l'enregistrer comme une sélection à une variable.

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

Si fait de cette façon, vous aurez même pas besoin de faire la sélection de d3 à nouveau (de la même manière que vous avez fait avec var graph sur la 1ère ligne du code dans votre question), car une référence à cette sélection est déjà stockés dans votre var dataContainer.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top