Я использую D3 для создания гистограммы (я адаптировал код из этот пример). Ярлыки, которые я использую на оси x, имеют длину в пару слов, и поскольку это перекрывает перекрытие ярлыков, мне нужно разбить эти метки по строкам. (Это будет хорошо, если я смогу заменить все пробелы в каждой метке новыми символами.)
Я изначально попробовал это, заменив пробелы буквальными символами новой строки (

) и установив xml:space="preserve"
в элементы label <text>
. К сожалению, оказывается, что SVG не уважает это свойство. Затем я попытался обернуть каждое слово в <tspan>
, которое я мог бы позже создать. Я передал каждую метку через эту функцию:
function (text) {
return '<tspan>' + text.replace(/ /g, '</tspan><tspan>') + '</tspan>';
}
но это просто помещает литерал <tspan>
в вывод. Как я могу обернуть мои текстовые метки в tspan
(или сделать что-то еще), чтобы мои ярлыки не перекрывались?