Javascript 如何使用d3.time.scale为一天中的每一小时和一周中的每一天创建标签
好的,这个问题可能有太多的重复,所以,我已经检查了几乎所有的问题,但我无法找到我的任务的答案 我有这项服务,它给我的网站,每分钟点击数,我想显示在仪表板使用d3 nvd3线图它 除了一件事,我所有的工作都在进行,我希望x axsis上的标签从午夜开始到午夜Javascript 如何使用d3.time.scale为一天中的每一小时和一周中的每一天创建标签,javascript,angularjs,d3.js,charts,nvd3.js,Javascript,Angularjs,D3.js,Charts,Nvd3.js,好的,这个问题可能有太多的重复,所以,我已经检查了几乎所有的问题,但我无法找到我的任务的答案 我有这项服务,它给我的网站,每分钟点击数,我想显示在仪表板使用d3 nvd3线图它 除了一件事,我所有的工作都在进行,我希望x axsis上的标签从午夜开始到午夜 (00:00至23:00)并每隔1小时[00:00,01:00,02:00,03:00,04:00,…22:00,23:00] 但我没能做到这一点,我尝试了所有可能的组合使用d3.time.scale但我没有做到这一点,我得到了x轴上的所有随
(00:00至23:00)
并每隔1小时[00:00,01:00,02:00,03:00,04:00,…22:00,23:00]
但我没能做到这一点,我尝试了所有可能的组合使用d3.time.scale
但我没有做到这一点,我得到了x轴上的所有随机标签
这是我目前使用的函数,它给出了这些随机值
$scope.xAxisTickFormatFunction = function() {
return function(d) {
return d3.time.format("%H:%M")(new Date(d));
};
};
在我得到这一天的工作时间表后,我想在一周的每一天也这样做
我真的搞不懂d3.time.scale是怎么工作的,我从昨天开始就一直在做这个
请帮忙
非常感谢真正的诀窍是能够利用D3中所有内置的时间格式/间隔工具。下面是一个非常简单的示例,基于off,您可以使用以下方法定义一天(24小时)的时间尺度: 上述代码生成此轴:
有没有办法做到这一点,但不在最右边显示最后的00:00?您好,mdml,您的示例没有使用NVD3,我可以用NVD3使用
d3.time.scale
?看见
// Set up the SVG
var svg = d3.select("body").append("svg")
.attr("width", width)
.attr("height", height);
// Define your time scale
var x = d3.time.scale()
.domain([new Date, new Date])
.nice(d3.time.day)
.range([0, width - 50]);
// Add your axis
svg.append("g")
.attr("transform", "translate(5,0)")
.call(d3.svg.axis().scale(x).ticks(24).tickFormat(d3.time.format("%H:%M")));