2012-10-29 19 views
1

我是jqplot中的新成員。今天我試圖刷新一個創建的行jqplot圖表作爲從http://jsfiddle.net/fracu/HrZcj/的指導。爲什麼我的JQPlot圖表無法使用新數據集刷新?

首先,我創建具有數據的陣列的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的人都可以給我指導。非常感謝。

回答

0

我解決了這個問題,即使我不確定這種方式是否最好:在刷新之前銷燬它,如果它存在。

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

這是對我以及工作的唯一途徑。你有沒有找到一種更好的方式讓你使用replot()? – neildaemond

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 
        } 
       } 
+0

您需要在答案中突出顯示對原始代碼的更改。 – Artemix

0
if (chart) { 
    chart.replot(); 
} 
相關問題