0

我想在 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 代码中调用它

更新小提琴:

jsfiddle

4

3 回答 3

2

您可以使用 setData() http://api.highcharts.com/highcharts#Series.setData()函数,而不是删除和添加新系列。如果你使用 addSeries() 你不需要使用 redraw(),因为 addSeries() 已经包含了 redraw 函数。

http://api.highcharts.com/highcharts#Chart.addSeries()

于 2013-07-05T11:47:28.243 回答
2

使用 redraw(),因为 addSeries() 已经包含了 redraw 函数。

http://api.highcharts.com/highcharts#Chart.addSeries()

于 2014-04-16T13:09:13.193 回答
0

如果我理解正确,您是说按下按钮不会加载新系列。如果是这样,那是因为您在处理程序中设置了按钮click处理change程序。这意味着您必须在注册之前单击 B 或 C 单选按钮。change这样将它移出处理程序,它会起作用。

于 2013-07-04T16:50:00.617 回答