Javascript 行未正确跟随x os&;第一个勾号为';不显示

Javascript 行未正确跟随x os&;第一个勾号为';不显示,javascript,d3.js,axis,Javascript,D3.js,Axis,见: 沿着绿线,圆圈应该与我的x轴垂直对齐,但它们都向右移动了几个像素 X轴没有显示它的第一个刻度,应该是2013年5月1日 我的x轴设置: var xAxis = d3.svg.axis().scale(x).ticks(d3.time.days, 1).tickFormat(d3.time.format("%d.%m.%Y")); graph.append("svg:g") .attr("class", "x axis") .attr("transform"

见:

沿着绿线,圆圈应该与我的x轴垂直对齐,但它们都向右移动了几个像素

X轴没有显示它的第一个刻度,应该是2013年5月1日

我的x轴设置:

var xAxis = d3.svg.axis().scale(x).ticks(d3.time.days, 1).tickFormat(d3.time.format("%d.%m.%Y"));

graph.append("svg:g")
        .attr("class", "x axis")
        .attr("transform", "translate(0," + h + ")")
        .call(xAxis)
        .selectAll("text")
        .style("text-anchor", "end")
        .attr("dx", "-.8em")
        .attr("dy", ".15em")
        .attr("transform", function (d) {
        return "rotate(-65)"
    });

谁能告诉我出了什么问题吗?

您的日期解析功能不正确,它似乎弄乱了时区,因为
新日期(字符串)
显然采用UTC。 这将有助于:

var format = d3.time.format("%Y-%m-%d");
function getDate(d) {
    return format.parse(d.date);
}

cf.

您的日期解析函数不正确,它似乎弄乱了时区,因为
新日期(字符串)
显然采用UTC。 这将有助于:

var format = d3.time.format("%Y-%m-%d");
function getDate(d) {
    return format.parse(d.date);
}
参见