Javascript d3时间序列刻度格式;显示格式化标签,但在单击时保留基础日期
我有一个时间表,需要显示一天中每小时的计数。Javascript d3时间序列刻度格式;显示格式化标签,但在单击时保留基础日期,javascript,d3.js,Javascript,D3.js,我有一个时间表,需要显示一天中每小时的计数。x数据类似于[10/01/2000 00:00,10/01/2000 01:00,…]。为了保持我的x记号清晰易读,我想删除字符串的10/01/2000部分,但数据是作为完整日期输入的,我还需要在单击该栏时保留完整日期。有没有办法做到这一点?您可以使用momentjs助手来处理日期/时间 var formatDate=函数(日期、输入格式、输出格式){ log(时刻(日期,inputFormat).format(outputFormat)); 返回时
x
数据类似于[10/01/2000 00:00,10/01/2000 01:00,…]
。为了保持我的x记号清晰易读,我想删除字符串的10/01/2000
部分,但数据是作为完整日期输入的,我还需要在单击该栏时保留完整日期。有没有办法做到这一点?您可以使用momentjs助手来处理日期/时间
var formatDate=函数(日期、输入格式、输出格式){
log(时刻(日期,inputFormat).format(outputFormat));
返回时刻(日期,输入格式)。格式(输出格式);
};
格式日期('10/01/2000 01:00','dd/MM/YYYY hh:MM','hh:MM')代码>
我认为d3.time.format在这里很有用。下面使用小时-分钟
var customTimeFormat = d3.time.format("%H:%M");
var x = d3.time.scale()
.domain([new Date(2000, 01, 10, 0), new Date(2000, 01, 10, 12)])
.range([0, width]);
var xAxis = d3.svg.axis()
.scale(x)
.tickFormat(customTimeFormat);
用于显示完整数据的SVG标题(假设您为轴提供了一个'xaxis'ID)
对于一次单击,可以使用下面的选项,您可以根据需要实现clickMe。一个简单的警告,以更好的东西看,如
d3.select('#xaxis')
.selectAll('.tick')
.append("svg:title")
.text(function(d, i) { return d });
d3.select('#xaxis')
.selectAll('.tick')
.on('click',clickMe)