Ajout de plusieurs textes svg avec d3

J'ai été coincé sur ce problème pendant des jours.

Donc, j'ai un jeu de données d'objets de la forme suivante:

dataset = [{metric:"revenue",value:0.03},{metric:"sales", value:0.15},{metric:"churn", value: 0.06},{metric:"logins", value: 0.45}]

Le code suivant pour afficher l'4 tonnes de noms dans un motif de grille (bandage, meshx sont les coordonnées des points de la grille et meshsize est la taille de la grille, donc c'est juste de mettre le texte au milieu d'un carré de la grille):

svg.selectAll("text")
    .data(dataset)
    .enter()
    .append("text")
    .text(function(d){
        return d.metric;
    })
    .attr("y",function(d,i){
        return meshy[i] + meshsize/2;
    })
    .attr("x", function(d,i){
        return meshx[i] + meshsize/2;
    })
    .attr("font-size",25)
    .attr("font-family","serif")
    .attr("text-anchor","middle")
    .attr("font-weight","bold");

Maintenant, je voudrais mettre la valeur de la métrique juste en dessous de la métrique nom comme:

 svg.append("text")
    .data(dataset)
    .text(function(d){
        return (d.value);
    })
    .attr("y",function(d,i){
        return meshy[i] + meshsize/2 + 20;
    })
    .attr("x", function(d,i){
        return meshx[i] + meshsize/2 ;
    })
    .attr("font-size",25)
    .attr("font-family","serif")
    .attr("text-anchor","middle")
    .attr("font-weight","bold");

Mais cela ne renvoie la valeur en dessous de la métrique, du nom de la PREMIÈRE métrique, les 3 autres de la valeur des textes ne sont même pas dans les DOM. J'ai essayé plusieurs approches, y compris le remplacement .texte avec .html comme décrit ici:https://github.com/mbostock/d3/wiki/Selections#wiki-htmlsans succès. J'ai aussi essayé en ajoutant le paragraphe éléments au lieu de cela fonctionne, mais le p les éléments sont positionnés au-dessous de la svg corps dans une liste avec aucun moyen évident de les déplacer dans la bonne position. Le code ci-dessus est la plus proche je suis arrivé à obtenir ce dont j'ai besoin, mais pour une raison que seule la première valeur de texte s'affiche. Cependant, je suis ouvert à toute approche en d3 qui fait le travail: 4 tonnes noms avec les bonnes valeurs en dessous de leur

source d'informationauteur user1452494