所以我几天前问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
它是如何在那里工作但不是在我尝试的时候? :(
答案 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); }); });