【发布时间】:2013-11-19 22:02:54
【问题描述】:
假设我有a graph where the x-axis tick labels are very long strings,所以我想改变刻度填充(文本和 x 轴之间的垂直距离),这样刻度标签就不会重叠。
我知道这可以通过选择刻度元素并应用转换属性来实现后渲染。但我想做:
var xAxis = d3.svg.axis()
.scale(x0)
.orient("bottom")
.tickSize(0)
.tickPadding(function(i) {
// some logic here to determine the alternating-height strategy by index, e.g.
return i % 2 ? 20 : 30;
});
这在 d3 中不起作用——文档 (https://github.com/mbostock/d3/wiki/SVG-Axes#wiki-tickPadding) 说 tickPadding 只需要像素数。有一个更好的方法吗? Monkey patch d3的axis.tickPadding函数取一个函数或者一个数字,然后在绘制tick的时候应用这个函数?
【问题讨论】:
标签: javascript svg d3.js