Javascript Highcharts-将数据从一个图表重写到另一个图表
在我的示例中,数据是随机生成的。单击按钮后,应更改缩放类型Javascript Highcharts-将数据从一个图表重写到另一个图表,javascript,highcharts,highstock,Javascript,Highcharts,Highstock,在我的示例中,数据是随机生成的。单击按钮后,应更改缩放类型 $(function() { var chartOptions={ chart:{ zoomType : 'x', events : { load : function() { var series = this.series[0]; var chart = thi
$(function() {
var chartOptions={
chart:{
zoomType : 'x',
events : {
load : function() {
var series = this.series[0];
var chart = this;
setInterval(function() {
var x = (new Date()).getTime(),
y = Math.round(Math.random() * 100);
series.addPoint([x, y]);
chart.redraw();
}, 1000);
}
}
},
series : [{
name : 'AAPL',
data : [null]
}]
};
$('#container').highcharts('StockChart', chartOptions);
$('#button').click(function() {
var chart1 = $('#container').highcharts();
//alert(chart1.series[0].yData);
chartOptions.chart.zoomType = 'y';
$('#container').highcharts(chartOptions);
});
});
单击按钮后,旧图表将消失,但不会生成新图表。
Firebug显示TypeError:e未定义并且在系列的行中。addPoint([x,y])代码>显示系列未定义
chartOptions
是全局的,因此在单击处理程序中,一个属性(zoomType)被更改,其余属性应相同
alert(chart1.series[0].yData)代码>显示属性数据。所以我试着:
$('#button').click(function() {
var chart1 = $('#container').highcharts();
//alert(chart1.series[0].yData);
chartOptions.chart.zoomType = 'y';
var chart2 = $('#container').highcharts(chartOptions);
chart2.series[0].setData(chart1.series[0].data);
chart2.redraw();
});
然后firebug显示chart2.series未定义
如果不销毁()图表并创建新实例,则无法更新highcharts中的缩放类型。换句话说,您应该使用
chart1.destroy()
var chart2=$(“#容器”)。highcharts(chartOptions)
如果您想设置任意轴上的范围(缩放图表),可以使用setextrems()函数
当chartOptions
或chart2.series未索引时,您需要使用$.extend({},chartOptions)
谢谢你的回答。不幸的是,我仍然不知道如何将数据从第一个图表重写到第二个图表。这一尝试带来了许多错误。仍然chart2.series未索引
,series未索引
和其他一些。奇怪的是,即使没有第34行,这个示例也应该可以工作,但它不。。。
$('#container').highcharts($.extend({},chartoptions);