Highcharts:从y轴隐藏/移除值(在范围内)

时间:2017-06-17 14:39:52

标签: highcharts

如何从yAxis中删除一些值?

我的图表是一个列范围(https://www.highcharts.com/demo/columnrange),x轴上的天数(实际上是y轴,已旋转),我不想在某些天显示值。

一般来说,我想隐藏域中的一些值,即不连续的域。

示例:

Highcharts.chart('container', {
    chart: { type: 'columnrange', inverted: true },
    xAxis: { categories: [ 'FirstTask' ] },
    yAxis: {
        type: 'datetime',
        tickInterval: 24 * 36e5
    },
    plotOptions: {
        columnrange: {
            dataLabels: {
                enabled: true,
                formatter: function () { return Highcharts.dateFormat('%e.%b', this.y); }
            }
        }
    },
    series: [{ data: [1497718538701, 1498150538701] }],
});

此代码在x轴(y,旋转)上生成带有水平条和6月17日至6月22日的天数的图表。

我想删除第19天和第20天,即间隔中的所有点

[1497891338701, 1497977738701]

有可能吗?

1 个答案:

答案 0 :(得分:1)

您可以使用断轴模块在轴上设置breaks

yAxis: {
  type: 'datetime',
  tickInterval: 24 * 36e5,
  breaks: [{
    from: Date.UTC(2017, 5, 19),
    to: Date.UTC(2017, 5, 20),
    breakSize: 0
  }],

在您的情况下,某些刻度似乎是重叠的,但可能会使用axis.labels.formatter修复 - 您可以检查该值是否在中断之外。

  labels: {
    formatter: function () {
      const hide = Date.UTC(2017, 5, 19) <= this.value && this.value < Date.UTC(2017, 5, 20)

      return !hide ? this.axis.defaultLabelFormatter.call(this) : null
    }

示例:http://jsfiddle.net/qhrd9wnw/