2013-11-21 40 views
5

我正在準備在Highcharts中顯示VU Meter圖表以顯示一組值。 通過選擇<SELECT><OPTION>來一次顯示一個值。 我設法瞭解如何更改圖表的title以匹配<OPTION>的所選label,但不幸的是我是一個noob,我無法正確更新seriesdataHighcharts - 如何正確更新VUMeter的系列[0] .data和yAxis標題?

A 最小工作示例可用於jsFiddle。特別是,下面的功能,就會引發<SELECT>改變:

$('#receptorsList0').change(function() { 
    var selectedOption = $("#receptorsList0 option:selected"); 
    var selectedValue = selectedOption.val(); 
    var selectedText = selectedOption.text(); 
    alert("i: "+selectedOption+", val: "+selectedValue+", text: "+selectedText); 

    // 1. Possible? 
    chart.yAxis.setTitle({ text: table[selectedText] + '<br/><span style="font-size:8px">' + selectedText + '</span>' }); 
    // 2. Doesn't work, suggestions? Same with chart.series[0].update(...) 
    chart.series[0].setData([selectedValue], true); 
    chart.setTitle({ text: selectedText }); 
    // 3. Unneeded, right? 
    chart.redraw(); 
}); 

我的問題有以下幾點:

  1. 是對yAxistitle支持的變化?這與更新圖形標題的命令類似,但它當然不起作用。
  2. 我該如何改變數據? chart.series[0].setData(...)chart.series[0].update(...)只使針消失以保持靜止。 data格式不正確,也許?你能指出我的錯誤嗎?
  3. 這是不需要的,對(假設上述作品)?

在此先感謝您提供的任何建議!


由於Sebastian Bochan誰指出我朝着正確的方向,我設法解決上述問題!請在下面找到上述功能的最終版本:

$('#receptorsList0').change(function() { 
    var selectedOption = $("#receptorsList0 option:selected"); 
    var selectedValue = parseFloat(selectedOption.val()); 
    var selectedText = selectedOption.text(); 

    chart.yAxis[0].update({ 
     title: { 
      text : table[selectedText] + '<br/><span style="font-size:8px">'+selectedText+'</span>', 
      y : -40 
     } 
    }); 
    chart.series[0].data[0].update(selectedValue); 
    chart.setTitle({ 
     text: selectedText 
    }); 
}); 

回答

10
  1. 是的,它可以通過更新功能上呼籲軸。 http://api.highcharts.com/highcharts#Axis.update()

  2. update,works on point,so it should be chart.series [0] .data [0] .update(20);

+0

非常感謝您指引我走向正確的方向!我會更新與您的建議作爲其他人蔘考的問題! –

相關問題