添加标志动态地给出问题,HighCharts

时间:2011-09-16 11:46:51

标签: javascript jquery highcharts typeerror

所以我几天前问Here哪些图表可用于基于股票的应用程序,我最终以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

它是如何在那里工作但不是在我尝试的时候? :(

1 个答案:

答案 0 :(得分:1)

非常感谢@ c69帮我这个。

他们下载的版本显然不是他们在jsFiddle上使用的版本。

此外我还在尝试使用getData函数来解决问题(因为highcharts.js中存在错误)。但后来我们理解了,我们开始使用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);  

    });

    });