Javascript D3.js刻度记号
我试图在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
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轴上唯一的记号标签:-(你能提供一个完整的例子来说明这个问题吗?