我想在highchart上添加一个重绘功能来显示一个系列的新数据集,iv制作了按钮,但背后的代码正在挣扎。
HTML:
<div id="container" style="min-width: 400px; height: 400px; margin: 0 auto"></div>
<button id="button">redraw </button>
JS:
function loadA(chart) {
chart.xAxis[0].update({
categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
});
chart.yAxis[0].setTitle({
text: "kHw"
});
chart.addSeries({
name: 'Rainfall11',
type: 'column',
color: '#08F',
data: [100, 200, 300, 400, 100, 200, 0, 0, 0, 0, 0, 0]
});
chart.addSeries({
name: 'Rainfall2',
type: 'column',
color: '#808000',
data: [100, 200, 300, 400, 100, 200, 0, 0, 0, 0, 0, 0]
});
chart.addSeries({
name: 'Rainfall3',
type: 'column',
color: '#FFA500',
data: [100, 200, 300, 400, 100, 200, 0, 0, 0, 0, 0, 0]
});
}
$(function() {
var chart = new Highcharts.Chart({
chart: {
renderTo: 'container',
type: 'column'
}
});
重绘方法的位置,以及在单击按钮时如何调用它来重绘新数据。
我现在有了这个更新的
function redraw() {
// Delete all the series.
while (chart.series.length > 0) {
chart.series[0].remove(false);
}
// Add the new series.
chart.addSeries({ data: Highcharts.map(Array(12), Math.random) }, false);
// Redraw the chart.
chart.redraw();
但是我需要从图表中获取相同的数据;而不是删除系列,我需要它来添加现有图表中的数据,所以我可以从vb.net代码中调用它
更新FIDDLE:
答案 0 :(得分:1)
您可以使用setData()http://api.highcharts.com/highcharts#Series.setData()函数,而不是删除和添加新系列。如果使用addSeries(),则不需要使用redraw(),因为addSeries()包含了重绘函数。
答案 1 :(得分:1)
使用redraw(),因为addSeries()包含了重绘功能。
答案 2 :(得分:0)
如果我理解正确,你说按下按钮不会加载新系列。
如果是这样,那是因为您在click
处理程序中设置了按钮change
处理程序。这意味着您必须在注册之前单击B或C辐射按钮。将其移出change
处理程序,如this,它将起作用。