Comment puis-je inclure des sauts de ligne dans les étiquettes en D3 graphiques?

Je suis en utilisant D3 pour générer un graphique à barres (j'ai adapté le code de cet exemple). Les étiquettes que j'utilise sur le xde l'axe sont un couple de mots de longueur chacune, et de ce fait, toutes les étiquettes de chevauchement j'ai besoin de rompre avec ces étiquettes à travers les lignes. (Ça va être beau si je peut remplacer tous les espaces de chaque étiquette avec des retours à la ligne.)

J'ai d'abord essayé en remplaçant les espaces avec littérale des retours à la ligne (&#xA;) et la mise en xml:space="preserve" sur les étiquettes' <text> éléments. Malheureusement, il s'avère que le SVG ne respecte pas cette propriété. Ensuite, j'ai essayé d'envelopper chaque mot dans un <tspan> que je pourrais plus tard de style. J'ai passé chaque étiquette grâce à cette fonction:

function (text) {
    return '<tspan>' + text.replace(//g, '</tspan><tspan>') + '</tspan>';
}

mais cela met juste littérale <tspan>s dans la sortie. Comment puis-je me les étiquettes de texte dans tspans (ou de faire autre chose), de sorte que mes étiquettes ne se chevauchent pas?

  • Est-ce une double question? stackoverflow.com/questions/4991171/...
  • pas vraiment, OP besoin d'insérer tspan's pas autowrap texte avec foreignObject (ce qui est exagéré, et non pris en charge par IE9 (et 10?).
InformationsquelleAutor bdesham | 2012-11-05