Javascript 鼠标按下时缩放从01/01/70开始

Javascript 鼠标按下时缩放从01/01/70开始,javascript,d3.js,data-visualization,nvd3.js,Javascript,D3.js,Data Visualization,Nvd3.js,带有d3.js的折线图。。。 从这里开始::() 但当开始拖动所有点时,向左移动,x轴(输入法刻度)从01/01/70开始,需要太多的平移才能得到实际值。。。 一旦我们成功了,所有的工作都会很好,但在开始的时候,我们都会去2007年1月1日。。有什么想法吗 var x = d3.time.scale().range([0, width]); var zoomChart = d3.behavior.zoom() .x(x) .on("zoom", zoomedChart); f

带有d3.js的折线图。。。 从这里开始::()

但当开始拖动所有点时,向左移动,x轴(输入法刻度)从01/01/70开始,需要太多的平移才能得到实际值。。。 一旦我们成功了,所有的工作都会很好,但在开始的时候,我们都会去2007年1月1日。。有什么想法吗

var x =  d3.time.scale().range([0, width]);
var zoomChart = d3.behavior.zoom()
    .x(x)
    .on("zoom", zoomedChart);

function zoomedChart() {
    svg.select(".x.axis").call(xAxis);
    svg.select(".y.axis").call(yAxis);   
    svg.select(".yy.axis").call(yyAxis);   
    drawLines();
}   


 svg.append("rect").attr("x", 0)
          .attr("y", 0)
          .attr("width", width)
          .attr("height", height).attr("class", "dummy")
          .call(zoomChart);


   var supercumulate = alllinesdata;
   x.domain(d3.extent(supercumulate, function (d) { return d.date; }));
    xmin = new Date(d3.min(supercumulate, function (d) { return d.date; }));

    xmax = new Date(d3.max(supercumulate, function (d) { return d.date; }));
    if(xmin!= 'undefined' && xmax!=undefined && xmin.getTime()==xmax.getTime()){
        xmin = xmin.setDate(xmin.getDate() - 1);
        xmax = xmax.setDate(xmax.getDate() + 1);
        x.domain(d3.extent([xmin, xmax]));
    }

知道这是Unix时代(时间戳0)的开始可能会有所帮助。我认为您需要为x d3.time.scale指定一个域,在该域中指定要显示的起始日期和截止日期范围。否则,它会从时间的开始抓起。。。i、 e.1970让我更新一下well@Kyll谢谢是的,这很有帮助。。。。