我正在尝试重用一些使x轴刻度的代码。这是我把它放进去的方法:
xTicks: (scale, dayTickFormat) ->
d3.svg.axis().scale(scale).orient("bottom")
.ticks(d3.time.days, 1)
.tickSize(10)
.tickFormat(dayTickFormat)
.tickPadding(8)
请原谅coffeescript:\
无论如何,我这里是调用它的代码:
drawTicks: (chart, chartOptions, margin, x, y, num_y_ticks) ->
xTickGroup = chart.append("g").attr("class", "day-ticks")
.call(@xTicks.bind(@, x, dayTickFormat))
.attr("transform", "translate(#{chartOptions.offset.left}, #{chartOptions.height - 10})")
当这段代码执行时,我没有得到任何刻度。我很难过。有什么想法吗?
答案 0 :(得分:0)
好的,恩,我明白了。
call()没有调用" d3.svg.axis()"它,它正在调用我缠绕它的方法。所以,如果我将我的方法存储在这样的变量中:
xTicks = @xTicks(x, dayTickFormat)
我可以更简单地称它为:
xTickGroup = chart.append("g").attr("class", "day-ticks")
.call(xTicks)
.attr("transform", "translate(#{chartOptions.offset.left}, #{chartOptions.height - 10})")
希望有一天能帮到某人:\