Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/377.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.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 NVD3:将日期用作X轴刻度时的奇怪行为_Javascript_D3.js_Nvd3.js - Fatal编程技术网

Javascript NVD3:将日期用作X轴刻度时的奇怪行为

Javascript NVD3:将日期用作X轴刻度时的奇怪行为,javascript,d3.js,nvd3.js,Javascript,D3.js,Nvd3.js,我正在绘制一个折线图,它应该在x轴上显示日期。图表运行良好,只是日期标记有点混乱。它跳过了一个约会!我在这里重复了这个问题: 在上面的示例中,您可以看到x轴上只有7个记号,而x轴上应该有8个记号。以tickFormat的格式打印出来,我知道3月25日似乎有两个刻度,因此它实际上只显示了7个刻度 让我恼火的是,我不确定tickFormat中的函数是如何获得其d输入的,因为它们看起来不像我实际提供给图形的x值。您可以这样做: var data_full = data();//get all dat

我正在绘制一个折线图,它应该在x轴上显示日期。图表运行良好,只是日期标记有点混乱。它跳过了一个约会!我在这里重复了这个问题:

在上面的示例中,您可以看到x轴上只有7个记号,而x轴上应该有8个记号。以
tickFormat
的格式打印出来,我知道3月25日似乎有两个刻度,因此它实际上只显示了7个刻度


让我恼火的是,我不确定
tickFormat
中的函数是如何获得其
d
输入的,因为它们看起来不像我实际提供给图形的
x
值。

您可以这样做:

var data_full = data();//get all  data
var secondDate = d3.max(data_full[0].values, function(d){ return new Date(d.x)});//get the max date
var firstDate = d3.min(data_full[0].values, function(d){return new Date(d.x)}); get min date
var between = [];
//get all dates between max and min date
while (firstDate <= secondDate) {
    between.push(new Date(firstDate));
    firstDate.setDate(firstDate.getDate() + 1);
}
chart.xAxis
    .axisLabel('Time (days)')
    .rotateLabels(-55)
        .tickValues(between)//set all dates manually with tickValues.
    .tickFormat(function(d) {
        return d3.time.format('%b %d')(new Date(d));
    })
    ;
var data_full=data()//获取所有数据
var secondDate=d3.max(数据完整[0]。值,函数(d){返回新日期(d.x)})//获取最长日期
var firstDate=d3.min(数据完整[0]。值,函数(d){返回新日期(d.x)});获取最小日期
var介于=[];
//获取最大和最小日期之间的所有日期
while(firstDate)