为什么我的JQPlot图表无法使用新数据集刷新?

时间:2012-10-29 08:02:13

标签: jqplot

我是jqplot的新手。今天我尝试刷新创建的行jqplot图表作为http://jsfiddle.net/fracu/HrZcj/的指导。

首先,我创建一个包含数据数组的jqplot图表,以下是代码片段:

            var colors = ['red', 'blue', 'green'];
            var dataset = [[232,234,235,556,233],[234,563,234,866,345],[234,564,567,345,234]];
            var lengeds = [{label: 'Test'}, {label: 'Upper'}, {label: 'Lower'}];
            var analysisLabels = [[1, "Label1"], [2, "Label2"], [3, "Label3"], [4, "Label4"], [5, "Label5"]];

            chart = $.jqplot("chart_id", 
                    dataset,
                    {
                        title: 'Sample Chart',
                        legend: {
                            show: true,
                            placement: 'outsideGrid'
                        },
                        series: lengeds,
                        axes: {
                           xaxis: {
                               ticks: analysisLabels,
                               tickRenderer: $.jqplot.CanvasAxisTickRenderer,
                               tickOptions: {
                                   angle: -30
                               }
                           },
                           yaxis: {
                               label: 'Fuel',
                               labelRenderer: $.jqplot.CanvasAxisLabelRenderer
                           }
                        },
                        seriesColors: colors,
                        highlighter: { 
                            show: true 
                        },
                        cursor: {
                            show: false
                        }
                    }
                );

然后我打算用新创建的数据集刷新它:

chart.series[0].data = chartSeriesTimes[0];
chart.series[1].data = chartSeriesTimes[1];
chart.series[2].data = chartSeriesTimes[2];

//chart.resetAxesScale();
chart.replot();

图表在上面的代码运行后没有显示任何内容,换句话说,3个以前创建的曲线被删除但新添加的3个曲线数据集不会渲染。

我不知道为什么会发生这种情况,因为我遵循官方的例子。任何擅长jqplot的人都可以给我指导。非常感谢。

3 个答案:

答案 0 :(得分:0)

我解决了这个问题,即使我不确定这种方式是否最好:在刷新之前将其销毁(如果存在的话)。

if (chart) {
    chart.destroy();
}

答案 1 :(得分:0)

您是否需要使用方括号[]来放置数据集?

          chart = $.jqplot("chart_id", 
                [dataset],
                {
                    title: 'Sample Chart',
                    legend: {
                        show: true,
                        placement: 'outsideGrid'
                    },
                    series: lengeds,
                    axes: {
                       xaxis: {
                           ticks: analysisLabels,
                           tickRenderer: $.jqplot.CanvasAxisTickRenderer,
                           tickOptions: {
                               angle: -30
                           }
                       },
                       yaxis: {
                           label: 'Fuel',
                           labelRenderer: $.jqplot.CanvasAxisLabelRenderer
                       }
                    },
                    seriesColors: colors,
                    highlighter: { 
                        show: true 
                    },
                    cursor: {
                        show: false
                    }
                }

答案 2 :(得分:0)

if (chart) {
    chart.replot();
}