Javascript D3.js刻度记号

Javascript D3.js刻度记号,javascript,d3.js,Javascript,D3.js,我试图在D3.js中创建一个时间刻度。我有以下代码 time_scale = d3.time.scale() .range([0, chart_dimensions.width]) .domain([d3.min(total_data, function(d) {return new Date('01/07/'+d.year)}), d3.max(total_data, function(d) {return new Dat

我试图在D3.js中创建一个时间刻度。我有以下代码

time_scale = d3.time.scale()
        .range([0, chart_dimensions.width])
        .domain([d3.min(total_data, function(d) {return new Date('01/07/'+d.year)}),
                    d3.max(total_data, function(d) {return new Date('01/07/'+d.year)})]);

var time_axis = d3.svg.axis()
        .scale(time_scale);
我的年度日期范围从2000年1月7日星期五00:00:00 GMT+0200(南非标准时间)到2014年1月7日星期二00:00:00 GMT+0200(南非标准时间)(我运行函数
Time\u scale.invert(0)
)时得到的输出),基本上每年有15个日期。axis绘制,但在绘制刻度时跳过一年,即2002200420062008201020122014…我更喜欢2001200220032004…或2002、2004、2006…但年份之间有刻度线表示年份之间。如何在D3.js中实现这一点

提前感谢,,
Tumaini

唯一可靠的方法是使用并明确设置刻度位置。由于您有一个时间刻度,您可以使用便利功能
time\u scale.ticks(d3.time.year,1)
为您的域中的每一年提供刻度,并将其传递给
.tickValues()


完成演示。

唯一可靠的方法是通过轴上的
.tickValues()
显式设置刻度线。谢谢,我已经尝试了
var time\u axis=d3.svg.axis().scale(time\u scale)。tickValues([2001200220032004205200620072008200920101201120012014])
这给了我一个错误
未捕获类型错误:未定义在
调用(时间轴)时不是函数调用了
。也尝试了引号中的年份,同样的错误。这是我的语法吗?再次感谢您需要
日期
对象,就像您用于刻度一样。好的,现在我尝试了
var time_axis=d3.svg.axis().scale(time_scale)。勾选值([new Date('07/01'+'2001')、new Date('07/01'+'2002')、new Date('07/01'+'2003')、新日期('07/01'+'2004')、新日期('07/01'+'2005')、新日期('07/01'+'2006')、新日期('07/01'+'2007')、新日期('07/01'+'2008')、新日期('07/01'+'2009')、新日期('07/01'+'2010')、新日期('07/01'+'2011')、新日期('07/01'+'2012')、新日期('07/01'+'2013')、新日期('07/01'+'2014'))
我仍然得到
NaN
作为我x轴上唯一的记号标签:-(你能提供一个完整的例子来说明这个问题吗?