2

在我的图表中,我尝试显示一年内的月末表现(1 月 31 日、Fev 29 日、...、12 月 31 日)。X轴定义如下:

xAxis: {
    type: 'datetime',
        dateTimeLabelFormats: {
            month: '%b %Y'
        }
    }
}

问题是刻度会自动调整为适当的单位(月)并显示该月的第一天。结果,我的第一个元素(1 月 31 日)显示在“2012 年 2 月”上方(其他元素的问题相同)。我想知道是否可以在我的 x 轴上显示月末日。任何想法?

谢谢,

例子

4

1 回答 1

5

您可以使用刻度线应出现的位置定义自定义xAxis.tickPositioner,如下所示

xAxis: {
    type: 'datetime',
    tickPositioner: function() {
        var ticks = [
            Date.UTC(2012, 0, 31),
            Date.UTC(2012, 2, 31),
            Date.UTC(2012, 4, 31),
            Date.UTC(2012, 6, 31),
            Date.UTC(2012, 8, 30),
            Date.UTC(2012, 10, 30)];
        //dates.info defines what to show in labels
        //apparently dateTimeLabelFormats is always ignored when specifying tickPosistioner
        ticks.info = {
            unitName: "month", //unitName: "day",
            higherRanks: {} // Omitting this would break things
        };           
        return ticks;
    }
}

自定义刻度位置 | Highchart & Highstock @ jsFiddle

于 2012-11-10T09:00:34.690 回答