首页 > 解决方案 > 缺少 D3js 第一个刻度标签

问题描述

我不明白为什么缺少第一个标签(2000)。我将其与许多示例进行了比较,但没有找到原因。

轴

    let xAxisScale = d3
        .scaleTime()
        .domain([min, max]) // 2000, 2013
        .range([0, width]);

        xAxis = d3
        .axisBottom()
        .tickFormat(d3.timeFormat('%Y'))
        .tickPadding(5)
        .ticks(d3.timeYear)
        .scale(xAxisScale);

        gx = innerSpace
        .append('g')
        .attr('class', 'x axis')
        .attr('transform', 'translate(0,' + height + ')')
        .call(xAxis);

你看到任何错误吗?

谢谢 !

标签: d3.jsaxisaxis-labels

解决方案


此问题可能是由于min日期的微小变化造成的。这取决于您构建min日期的方式。

例如,new Date('2000-01-01')如果您的时区 >0,则不包括 2000 年。您可以编写new Date('2000-01-01T00:00:00Z')以使用 UTC。

另外,如果你使用new Date(YYYY, MM, DD),你应该考虑到,那个月从零开始,而一天从一开始。

在此处阅读有关处理该问题的正确方法:http: //bl.ocks.org/jebeck/9671241


推荐阅读