使用重绘来从图表中获取数据,Jsfiddle提供

时间:2013-07-04 14:02:50

标签: javascript asp.net .net highcharts jsfiddle

我想在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:

jsfiddle

3 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

使用redraw(),因为addSeries()包含了重绘功能。

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

答案 2 :(得分:0)

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