2013-05-06 2 views
0

Есть ли способ изменить поведение по умолчанию обработчика кликов Legend в Highcharts.js, чтобы при щелчке по метке легенды он изолировал серию, а не скрывал ее. То есть он должен скрыть все остальные серии на диаграмме.Изолировать одну строку на линейной диаграмме Highcharts

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>'; 
     } 
    }, 
+0

Посмотрите на эти нити http://stackoverflow.com/questions/10604952/how-to-modify-highcharts-legend-item-click-event http://stackoverflow.com/questions/8880748/hiding-a-highcharts-series-without-use-the-legend –

ответ

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; 
         } 
        } 
      } 
     } 
+0

это в значительной степени делает то, что я хочу, но он работает очень медленно с 50 сериями. Есть идеи, как повысить производительность? – Adam

+0

Я не знаю, как улучшить производительность этого, так как ось Y также динамически построена на основе данных. Если бы был способ кэшировать «серию», используемую в этом обработчике, чтобы он не вытягивал все серии каждый раз при нажатии на легенду, я думаю, что производительность улучшится. –

+0

Вы можете попробовать отключить анимацию, чтобы повысить производительность. –

Смежные вопросы