Lin*_*lin 6 javascript svg bar-chart axis-labels d3.js
我正在使用分组条形图(http://bl.ocks.org/mbostock/3887051),但x轴的文本很长,如附图所示.如何旋转文字?谢谢.
Viv*_*idD 13
这里可以找到合理的解决方案
结果如下:

确保您完全理解这部分代码:
svg.append("g")
.attr("class", "x axis")
.attr("transform", "translate(0," + height + ")")
.call(xAxis)
.selectAll("text")
.style("text-anchor", "end")
.attr("dx", "-.8em")
.attr("dy", ".15em")
.attr("transform", "rotate(-65)");
Run Code Online (Sandbox Code Playgroud)
-65 是标签文本旋转的角度,以度为单位.
此外,您应该增加底部的边距,以便不会剪切旋转的文本.
警告:最后浏览器不可避免地呈现旋转的文本(D3只是创建由浏览器解释的适当的svg),并且他们做一个糟糕的工作渲染旋转文本(而不是说高级绘图或图表软件).
此外,相关的StackOverflow问题:
您可能需要考虑使用D3FC,它可以直接替代支持此功能的 D3 轴组件。
D3FC 有一个适配器组件,如果轴标签发生碰撞,它会自动旋转轴标签:
const axis = fc.axisLabelRotate(fc.axisOrdinalBottom(foodScale));
Run Code Online (Sandbox Code Playgroud)
这是在行动中:
全面披露- 我是 D3FC 库的维护者和贡献者!
使用SVG变换属性旋转,
此变换定义指定围绕给定点旋转一定度数
试试这个代码:
svg.append("g") // Add the X Axis
.attr("class", "x axis")
.attr("id", "x")
.attr("transform", "translate(0," + (h) + ")")
.call(xAxis)
.selectAll("text")
.style("text-anchor", "end")
.attr("dx", "-.8em")
.attr("dy", ".15em")
.attr("transform", function (d) {
return "rotate(-30)";
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9049 次 |
| 最近记录: |