2011-09-16 28 views
1

因此,我問幾天前Here哪些圖表可以用於基於股票的應用程序,我終於用HighCharts結算,只是因爲它太棒了。添加標誌動態給出問題,HighCharts

現在我的圖表按照預期呈現。

Candlestick chart http://i54.tinypic.com/2jaat85.png

對我來說,下一步就是把國旗在他們身上。對此我能夠在創建圖表本身做的,它呈現這樣的:

Candlestick with flag http://i55.tinypic.com/o5ozt4.png

 
// some code here 
series: [{ 
         id: "dataSeries", 
         name: "datadata", 
         type: "candlestick", 
         data: items 
        },{ 
         id: "flagSeries", 
         name: "flagflag", 
         type: "flags", 
         data: [{ 
          x: 1301651400000, 
          title: 'B', 
          text: 'Shape: "circlepin"' 
         }] 
        }] 
// some code here 

但當我嘗試動態地做同樣的指示here,我得到說Uncaught TypeError: Cannot read property 'shift' of undefined

錯誤
 
//some code here 
series: [{ 
         id: "dataSeries", 
         name: "datadata", 
         type: "candlestick", 
         data: items 
        },{ 
         id: "flagSeries", 
         name: "flagflag", 
         type: "flags", 
         data: [] 
        }] 
//some code here 
$('button').click(function(){ 
var ser = chart.get("flagSeries"); 
       console.log(ser); 
       ser.addPoint({ 
        x: 1301672700000, 
        title: 'C', 
        text: 'Shape: "circlepin"' 
       }); 
}); 
//some code here 

它是如何工作的,但沒有當我嘗試它? :(

+0

你什麼時候得到錯誤? onClick或onLoad?也許你會添加指向錯誤/不存在的系列? http://jsfiddle.net/CAKQH/5/ - 動態addPoint()的作品... – c69

+0

我收到錯誤,當我點擊按鈕。問題是,當放在我的本地機器上時發現[這裏](http://jsfiddle.net/3ZdBd/)的代碼也給出了這個錯誤。 我不明白它如何可以在線工作,但不是在本地機器上:( – Shrayas

+0

你有相同版本的HighCharts作爲網站(即:最新鮮)嗎? – c69

回答

1

一個偉大的感謝欠@ C69誰幫我在這。

Apparantly他們給予了下載的版本是不是他們使用上的jsfiddle之一。

還有,我也。嘗試使用給我的問題(因爲highcharts.js錯誤的)的函數的getData但是後來我們瞭解到,我們開始使用addPoint方法,而不是

現在,它的工作原理:d

 
var entry_servlet = 'SOMESERVLET' 

    $.getJSON(entry_servlet, function(ret_data) { 

     $.each(ret_data, function(key, val) { 

      var dat = ret_data[key].date; 
      var tim = ret_data[key].time; 

      var o = ret_data[key].o; 
      var h = ret_data[key].h; 
      var l = ret_data[key].l; 
      var c = ret_data[key].c; 



      datArr = dat.split('/'); 
      timArr = tim.split(':'); 

      var UTCthing; 


      UTCthing = Date.UTC(datArr[2],datArr[0]-1,datArr[1],timArr[0],timArr[1],timArr[2]); 



      window.buck_chart.series[1].addPoint(
        { 

          name:'title', 
          title: "B", 
          x: UTCthing, 
          color: '#009f3c', 
          text: "Price: " + o + " time: " + tim            
        },true,false); 

    }); 

    }); 
+0

感謝您提供一個答案,但我希望它與你的問題中的樣本一致(手工編碼的數據而不是ajax get)。要求你用標誌製作工作小提琴是否太多了(因爲你張貼的添加標誌對我來說是破碎的)?我試圖做這項工作,但這些樣本不是真的在做它 – Amalgovinus

+0

嘿@Amalgovinus,將很快做到這一點,併發布回來:)你可以鏈接我的數據樣本JSON然後我可以得到它併爲你跑步 – Shrayas

+0

非常感謝。以下是四個日期時間/值對:[[Date.UTC(2012,01,1,0),6],[Date.UTC(2012,01,1,1),0],[Date.UTC(2012, 01,1,2),13],[Date.UTC(2012,01,1,3),14]] – Amalgovinus