是否有可能在生成高图表后放置图表?
背景是,我有一个专用容器(即<div>
-node),用户可以在其中选择两个可能的图表之一。因此,我想要生成两个图表,其中用户可以来回切换到另一个。
由于这两个图表(甚至更多的图表)相当大,我想在开始时生成它们一次。
我看到的所有示例和文档总是构建一个从相关的<div>
-node开始的高级图表:
$('#container').highcharts({
series: [{
data: [29.9, 106.4, 129.2, 144.0, 135.6, 148.5, 216.4, 95.6, 54.4]
}]
});
可能的话,您可以使用renderTo
指定图表,否则:
var myChart = new Highcharts.Chart({
chart: {
renderTo: 'container'
},
series: [{
data: [29.9, 106.4, 129.2, 144.0, 135.6, 148.5, 216.4, 95.6, 54.4]
}]
});
但是:我要找的是这样的东西:
// at first, define the chart (without assignement to a <div>):
var myChart = new Highcharts.Chart({
series: [{
data: [29.9, 106.4, 129.2, 144.0, 135.6, 148.5, 216.4, 95.6, 54.4]
}] // does not work without 'renderTo'
});
// Then, assign it to a <div>:
myChart.renderTo('container'); // does not work :-(
我发现的唯一选择是用new Highcharts.Chart({...})
生成一个新图表,但是由于图表可能相当庞大,在它们之间的切换将花费相当长的时间,而想要的图表已经在内存中可用.
非常感谢你的回答!
发布于 2014-07-27 09:55:00
new Highcharts.Chart()
构造函数接受选项,因此您可以提前定义选项,然后当您准备好使用它们时,您可以设置renderTo
并创建高级图表对象。
例如(JSFiddle实例):
// Set options early
var options = {
title: {
text: 'My chart'
},
chart: {
renderTo: null
},
...
};
// When you are ready
setTimeout(function() {
options.chart.renderTo = 'container';
new Highcharts.Chart(options);
}, 2000);
https://stackoverflow.com/questions/24983681
复制相似问题