强制最后一个标签并在x轴上打勾

时间:2017-06-15 16:00:11

标签: highcharts

我有一个x轴上带有日期类别的样条图。标签以2为步长,因此显示备用日期。无论步长如何,我如何显示最后一个标签和刻度?示例:如果最后两个标签是11/6和12/6我想显示12/6,即使步长为2.如果最后一个类别是13/6那么它可以正常工作。

2 个答案:

答案 0 :(得分:1)

我没有看到让tickInterval为2并在最后添加额外刻度的方法。但是,如果使用tickInterval为1,则可以使用格式化程序显示每个其他标签以及最终标签。

Highcharts.chart('container', {
    xAxis: {
        labels: {
            formatter: function () {
                var label = this.axis.defaultLabelFormatter.call(this);
                if (label % 2 == 1 && !this.isLast) label = '';
                return label;
            }
        },
        tickInterval: 1
    },

    series: [{
        data: [29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4],
        type: 'line'
    }]

});

http://jsfiddle.net/p665hgo0/

答案 1 :(得分:1)

您可以使用tickPositioner()功能实现此目的。

此示例使用简单的数字轴,但应与类别相同。如果您使用的是实际的datetime轴,则需要修改回调函数中的检查以匹配您的日期间隔。

代码示例:

xAxis: {
  tickPositioner: function() {
    var positions = [],
      ext = this.getExtremes(),
      xMax = Math.round(ext.max),
      xMin = Math.round(ext.min);

    for (var i = xMin; i < xMax; i++) {
      if (i % 2 == 0) {
        positions.push(i);
      }
    }
    positions.push(xMax);
    return positions;
  }
}

小提琴:

使用每月类别更新小提琴:

参考: