Почему моя диаграмма 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, дать мне руководство. Большое спасибо.


person Brady Zhu    schedule 29.10.2012    source источник


Ответы (2)


Я решил эту проблему, даже не уверен, что этот способ лучше всего подходит для этого: уничтожить его, прежде чем обновлять, если он существует.

if (chart) {
    chart.destroy();
}
person Brady Zhu    schedule 01.11.2012
comment
Это единственный способ, который работает и для меня. Вы нашли лучший способ, позволяющий использовать replot()? - person neildaemond; 15.10.2013

Разве вам не нужна скобка [] для размещения набора данных?

          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
                    }
                }
person everlasting-learner    schedule 29.11.2012
comment
Вам нужно выделить изменение исходного кода в своем ответе. - person Artemix; 29.11.2012