2013-10-29 92 views
0

我正在嘗試更新圖表中的一個點[x,y]。 什麼問題? 好吧,我在圖表及其圖表系列是這樣的:Highcharts - 更新系列點[x,y]值?

 series: [ 
      { 
       enableMouseTracking: false, 
       name: 'Line1', 
       type: 'line', 
       color: '#5d5d5d', 
       yAxis: 1, 
       data: [[12000, 55.068493], [15064, 42.842]], 
       marker: { 
        symbol: 'circle' 
       } 
      }, 
      { 
       enableMouseTracking: false, 
       name: 'Line2', 
       type: 'line', 
       color: '#5d5d5d', 
       yAxis: 1, 
       marker: { 
        symbol: 'circle' 
       }, 
       data: [[12000, 57.671527], [16000, 42.620069]] 

      },{ 
       name: 'TOM', 
       //type: 'line', 
       color: '#ff4100', 
       yAxis: 1, 
       marker: { 
        symbol: 'url(icons/tom.png)' 
       }, 
       data: [ 
        { 
         id:'tom_point', 
         color: '#00FF00', 
         y: fi_variable, 
         x: tom_variable 
        } 
       ] 
      } 

現在的事情是,我檢查,如果fi_variabletom_variable已經改變,如果它的真實,更新這兩個變量,最後更新圖表。

我已經試過了,一些方法,如chart.series[0].data[0].update(y = 10);和它的一些點固定的x,y值的工作,但沒有運氣的其餘點。 對於實例我使用chart.series[0].data[1].update(y = 10);將工作正常, 但這chart.series[0].data[3].update(y = 10);將無法​​正常工作。

1-有沒有什麼辦法可以將data[0]替換成idid這個tom_point

此外,我試過這chart.series[0].setData([[tom_variable,fi_variable, 'tom_point']]); 並再次它不會工作時,點是一個ID或沒有固定值。

但是,如果我嘗試chart.series[0]data[0].setData([[tom_variable,fi_variable]]);它的作品,但不是在第三個元素(在我們的情況 - 如上所示)的系列。

我可以得到這個點的值與以下 var tomPoint = chart.get('tom_point').y; 但我不能設置任何x,y值回到圖表並更新它(圖表)。

我也試着檢查變量是否發生了變化,並用chart.redraw重繪圖表,但沒有。

任何想法我怎麼能得到這個工作? 我失去了什麼?

預先感謝您的時間。

回答

0

確定,最終的解決方案很簡單。

我已經成功地更新點:

在系列名稱爲TOM第三元素對應於 chart.series [2]。

   { // chart.series[2] 
       name: 'TOM', 
       //type: 'line', 
       color: '#ff4100', 
       yAxis: 1, 
       marker: { 
        symbol: 'url(icons/tom.png)' 
       }, 
       data: [ 
        { 
         id:'tom_point', 
         color: '#00FF00', 
         y: fi_variable, 
         x: tom_variable 
        } 
       ] 
      } 

所以爲了更新這個點[X,Y]值,你必須做這樣的:只有當數據的

// TOM Point

`chart.series[2].data[0].update({x:var_x, y:var_y});` 
1

,如果你也想改變x的值,然後使用

chart.series[0].data[0].update({ 
x: 10, 
y: 100 
}) 

這將更新x和y的值就像這個例子http://jsfiddle.net/DCA8W/

希望這是你在找什麼。

+0

這種情況下將工作格式數據:[100.200,189,124,176] – Strikers

+0

首先,謝謝罷工者。實際上問題是'data [0]',我無法用數據[3]指向這個數據(在帶有id的tom_point數據)也沒有別的。 –

1

首先,您嘗試更新不存在於serie中的point(data [3])。其次的情況下,當你更新你需要使用

chart.series[0].data[1].update(10);chart.series[0].data[1].update({y:10});但不夜的身影

+0

是的,謝謝你指出我不知道你說得對。任何其他方式來針對特定的x,y值並更新它們?當我試圖做到以上所有y:系列的值正在更新。 –

+0

你可以使用setData() –