【问题标题】:Isolate a single series on Highcharts line chart在 Highcharts 折线图上隔离单个系列
【发布时间】:2013-05-06 23:11:47
【问题描述】:

有没有一种方法可以更改 Highcharts.js 中的图例单击处理程序的默认行为,以便当我单击图例标签时它会隔离系列,而不是隐藏它。 IE。它应该隐藏图表上的所有其他系列。

http://jsfiddle.net/adamtsiopani/rNkBs/

legend: {
        layout: 'vertical',
        align: 'right',
        verticalAlign: 'top',
        useHTML: true,
        labelFormatter: function () {
            console.log(this);
            return this.name + ' <a class="isolate-series">[isolate]</a>';
        }
    },

【问题讨论】:

标签: javascript charts highcharts


【解决方案1】:

这是你想要的吗? Fiddle Link

基于 API,您必须使用 legendItemClick 添加点击处理程序才能应用于该系列。

     plotOptions: {
            series:{
                   events: {
                        legendItemClick: function(event) {
                            if (!this.visible)
                                return true;

                            var seriesIndex = this.index;
                            var series = this.chart.series;

                            for (var i = 0; i < series.length; i++)
                            {
                                if (series[i].index != seriesIndex)
                                {

                                    series[i].visible ? series[i].hide() : series[i].show();
                                } 
                            }

                            return false;
                        }
                   }
             }
        }

【讨论】:

  • 这几乎可以满足我的要求,但它在 50 系列中的执行速度非常慢。知道如何提高性能吗?
  • 我不知道如何提高它的性能,因为 Y 轴也是根据显示的数据动态构建的。如果有办法缓存该处理程序中使用的series,这样它就不会在每次单击图例时拉出所有系列,我认为性能会有所提高。
猜你喜欢
  • 2021-11-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多