Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用d3.time.scale为一天中的每一小时和一周中的每一天创建标签_Javascript_Angularjs_D3.js_Charts_Nvd3.js - Fatal编程技术网

Javascript 如何使用d3.time.scale为一天中的每一小时和一周中的每一天创建标签

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轴上的所有随

好的,这个问题可能有太多的重复,所以,我已经检查了几乎所有的问题,但我无法找到我的任务的答案

我有这项服务,它给我的网站,每分钟点击数,我想显示在仪表板使用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轴上的所有随机标签

这是我目前使用的函数,它给出了这些随机值

$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")));