Highcharts:带有垂直网格线的xAxis

时间:2016-09-15 10:41:05

标签: javascript highcharts

我需要创建一个折线图,其中xAxis将显示垂直网格线而不是水平网格线,就像在“chart:{inverted:true}”情况下一样(例如在下面的屏幕上)。

vertical gridlines effect

不幸的是,这个解决方案并不完全准确,因为它也会切换数据的顺序,所以实际上距离刻度最终位于图表的一侧,而它应该位于底部,如下所示:

proper data order but with horizontal gridlines

我的问题是:有没有办法让网格线垂直显示而不切换数据的顺序?

以下是Highcharts演示的示例图表,我想更改网格线的显示:

$(function () {
$('#container').highcharts({
    chart: {
        type: 'spline',
        inverted: false
    },
    xAxis: {
        reversed: false,
        labels: {
            formatter: function () {
                return this.value + 'km';
            }
        },
    },
    yAxis: {
        title: {
            text: 'Temperature'
        },
        labels: {
            formatter: function () {
                return this.value + '°';
            }
        },
    },
    legend: {
        enabled: false
    },
    series: [{
        name: 'Temperature',
        data: [[0, 15], [10, -50], [20, -56.5], [30, -46.5], [40, -22.1],
            [50, -2.5], [60, -27.7], [70, -55.7], [80, -76.5]]
    }]
});

PS我不想篡改传递给函数的数据的顺序。

1 个答案:

答案 0 :(得分:5)

您是否考虑过使用xAxis.gridLineWidth和xAxis.gridLineColor参数? http://api.highcharts.com/highcharts/xAxis.gridLineWidth http://api.highcharts.com/highcharts/xAxis.gridLineColor

$(function() {
  $('#container').highcharts({
    chart: {
      type: 'spline',
      inverted: false
    },
    xAxis: {
      reversed: false,
      gridLineWidth: 1,
      labels: {
        formatter: function() {
          return this.value + 'km';
        }
      },
    },
    yAxis: {
      title: {
        text: 'Temperature'
      },
      gridLineWidth: 0,
      labels: {
        formatter: function() {
          return this.value + '°';
        }
      },
    },
    legend: {
      enabled: false
    },
    series: [{
      name: 'Temperature',
      data: [
        [0, 15],
        [10, -50],
        [20, -56.5],
        [30, -46.5],
        [40, -22.1],
        [50, -2.5],
        [60, -27.7],
        [70, -55.7],
        [80, -76.5]
      ]
    }]
  });
});

在这里你可以看到一个如何工作的例子: http://jsfiddle.net/r3wd8j7t/1/