Highchart xAxis不会从第一个数据点开始

时间:2015-02-09 20:45:39

标签: javascript jquery highcharts

我有一个问题,我不想在12月31日而不是1月1日开始使用x轴。我尝试设置x轴min并使用dateTimeLabelFormats,但似乎没有任何改变滴答开始的日期。

xAxis: {
        type: 'datetime',
        labels: {
            rotation: 300,
            //formatter: function () {
            //return this.value;
            //}
        },
        dateTimeLabelFormats: {
            year: '%m/%d/%Y'
        },
        //minTickInterval: 365 * 24 * 3600 * 1000,
        min: Date.UTC(2004, 11, 31)

    },

我将代码放在jsFiddle

1 个答案:

答案 0 :(得分:2)

最好的方法是使用tickPositioner,例如:http://jsfiddle.net/t3nr0kgt/2/

        tickPositioner: function (min, max) {
            var axis = this,
                options = axis.options,
                // get normalized tick interval
                normalizedTickInterval = axis.normalizeTimeTickInterval(
                    axis.tickInterval, 
                    options.units
                ),
                // get default ticks
                ticks = axis.getTimeTicks(
                    normalizedTickInterval, 
                    min, 
                    max, 
                    options.startOfWeek,
                    axis.ordinalPositions,
                    axis.closestPointRange,
                    true
                );

            // register information for label formatter
            ticks.info = {
                higherRanks: normalizedTickInterval.higherRanks,
                unitName: normalizedTickInterval.unitName
            };

            // replace first label with 2004 year. 
            // When labels overlap, remove for example first two elements (1 change to 2):
            ticks.splice(0, 1, min);

            return ticks;
        }

如您所见,这不会阻止标签重叠,因此请谨慎使用。

另一个解决方案是像您一样设置min选项,但使用startOnTick选项。但这会产生一些差距:http://jsfiddle.net/t3nr0kgt/5/