Highcharts限制为1 yaxis

时间:2018-02-05 20:51:44

标签: javascript highcharts

我发现需要确保Highcharts一次只使用1个yaxis,基本上我通常有大约5-10个系列但很多没有相同的yaxis测量。

例如,对于空气污染,PM2.5以ug / m3为单位,大多数其他以ppm为单位,但也有ppb。

我想默认只显示ppb系列,但是如果你选择一个使用例如ug / m3的系列(来自highcharts图例),那么所有ppb系列都将被隐藏。

我在定义它时遇到了一些困难,因此查看文档时我似乎无法找到与我的问题有任何关联来找到解决方案,而我真的想避免试图强迫Highcharts这样做看起来似乎很有可能以某种方式得到支持。

我主要想要的是如何通过高级图表来指示我可能会将我引导到文档的正确部分,或者如果不支持高级图表我可以做些什么来实现这一点而不会使设置过于复杂(单击图例项目上的事件等。)

1 个答案:

答案 0 :(得分:1)

您可以使用series.events.legendItemClick来实现此目的,并在启用时隐藏所有其他系列。有用的选项也是yAxis.showEmpty,如果未设置极值,它将隐藏所有yAxis元素。

演示:http://jsfiddle.net/BlackLabel/aqh5htqt/

Highcharts.chart('container', {
  yAxis: [{
    showEmpty: false
  }, {
    showEmpty: false
  }, {
    showEmpty: false
  }],
  plotOptions: {
    series: {
      events: {
        legendItemClick: function() {
          if (!this.visible) {
            // Hide all others
            Highcharts.each(this.chart.series, function(series) {
              series.hide();
            });
          } else {
            // Prevent hiding the only visible series
            return false;
          }
        }
      }
    }
  },
  series: [{
    data: [1, 2, 3]
  }, {
    data: [100, 400, 5000],
    visible: false,
    yAxis: 1
  }, {
    data: [5, 10, 15],
    visible: false,
    yAxis: 2
  }]
});