2013-09-02 2 views
2

Я использую highstock для сериала с разными временными диапазонами, но временной диапазон навигатора не обновился правильно после добавления/удаления серии. Код разделял http://jsfiddle.net/QssUu/1/highstock - навигационный диапазон времени не обновляется после добавления/удаления серии

$(function() { 

$.getJSON('http://www.highcharts.com/samples/data/jsonp.php?filename=aapl-c.json&callback=?', function(data2) { 
    // Create the chart 
    window.chart = new Highcharts.StockChart({ 
     chart : { 
      renderTo : 'container' 
     }, 

     rangeSelector : { 
      selected : 5 
     }, 

     title : { 
      text : 'AAPL Stock Price' 
     }, 

     series : [{ 
      name : 'AAPL', 
      data : data2, 
      tooltip: { 
       valueDecimals: 2 
      } 
     }] 
    },function(chart){ 


     var newSeries = { 
      name : 'new', 
      data : [[1010112000000,55],[1136246400000,60.10],[1138752000000,65.03],[1204502400000,70.41],[1257120000000,75.47],[1349049600000,80.59]] 
     }; 

     $('#btn1').click(function(){ 
      chart.addSeries(newSeries); //add new serie 
     }); 

     $('#btn2').click(function(){ 
      chart.series[0].remove(); //remove serie from chart 
     });    
    }); 
}); 

Ниже приведен список шагов, которые я сделал:

  1. Создать серию 1 в графике, с графиком rangeSelector установлен на «все».
  2. Нажмите «Добавить серию 2», чтобы создать серию 2 на диаграмме. Я ожидаю, что временные рамки навигатора будут обновлены, чтобы охватить как серии 1, так и 2 (начинается с 31 декабря 2001 года). Но он по-прежнему включает только серии 1.
  3. Нажмите «удалить серию 1», чтобы удалить серию 1 из диаграммы. Я ожидаю, что навигатор будет обновлен, чтобы включать только временные диапазоны серии 2, но он по-прежнему включает временной диапазон серии 1.

Может ли кто-нибудь показать мне, как обновить временной диапазон навигатора после добавления/удаления серии? Было бы неплохо, если бы диапазон «от» и «до» диапазона был также соответствующим образом обновлен. Обратите внимание, что в моем приложении я буду использовать более двух серий и добавлять/удалять любые серии в любое время. Поэтому решение должно работать более чем на 2 серии.

Заранее благодарен!

Alex

ответ

2

Вот jsfiddle http://jsfiddle.net/A8kY9/

Так добавить идентификатор штурман

navigator: { 
    enabled: true, 
    series: { 
      id: 'navigator' 
    } 
}, 

и

  var nav = chart.get('navigator'); 
      nav.setData(newSeries.data); 
      chart.xAxis[0].setExtremes(); 

Надеется, что это понятнее Патрик

2

После нажатия addSeries, вы можете использовать setExtremes() и установить свой собственный диапазон.

+0

Можете ли вы предоставить рабочий пример используя пример jsfiddle I p rovided? – cz1980

+0

Пожалуйста, взгляните на http://jsfiddle.net/vWrTA/ –

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