我正在使用D3生成条形图(我使用了此示例中的代码).我在x轴上使用的标签每个都是两个字,因为这使得所有标签重叠,我需要跨行打破这些标签.(如果我可以用换行符替换每个标签中的所有空格,那就没问题了.)
我最初尝试使用文字换行符(

)替换空格并xml:space="preserve"
在标签<text>
元素上设置.不幸的是,事实证明SVG不尊重这个属性.接下来,我尝试将每个单词包装成<tspan>
我以后可以使用的单词.我通过这个函数传递了每个标签:
function (text) {
return '<tspan>' + text.replace(/ /g, '</tspan><tspan>') + '</tspan>';
}
Run Code Online (Sandbox Code Playgroud)
但这只是将文字<tspan>
放入输出中.如何将文本标签包装在tspan
s中(或执行其他操作)以使我的标签不重叠?