2012-09-12 36 views
0

不得不繪製一個不同數量的線條圖,我試圖通過一個變量傳遞系列參數,但jqPlot不知道如何不考慮它們,並保持顯示默認值線寬,顏色和標籤。 這是什麼,我都試過(單線)最簡單的版本:通過一個變量將系列參數傳遞給jqPlot

var seriesOptions = {lineWidth: 1, color: "#FF0000", label: "Call"}; 


var plotOptions = { 
    title: { 
      text: data['stratResult'][0] + '<br /><span class="subtitle">Results</span>' 
    }, 
    seriesDefaults: { 
     showMarker: false 
     } 
    axes: { 
     yaxis: { 
      label: '<span class="label">Result</span>' 
    }, 
               xaxis: { 
     label: '<span class="label">Price</span>' 
    } 
    }, 
    markerOptions: { 
     show: false, 
     size: 0  
    }, 
    series: seriesOptions, 
legend: { 
    show: true 
    } 
}; 


$j.jqplot('plotDiv', 
    $j.parseJSON(data['stratResult'][1]), 
    plotOptions 
); 

所有其他選項工作得很好,但一經seriesOptions變量傳遞表示沒有影響。有人可以幫助我嗎?

+0

你的變量seriesOptions不應該是一個字符串 –

+0

@Elias謝謝,我糾正了,但結果是完全一樣的... – Argoron

+1

不客氣,但同樣,根據[文檔](http://www.jqplot.com/docs/files/optionsTutorial-txt.html)系列是Json選項的數組,因此您必須添加[]並且它應該可以工作。如果你只有一個系列,那麼定義seriesDefaults屬性就更簡潔了 –

回答

0
var seriesOptions = '{lineWidth: 1, color: "#FF0000", label: "Call"}'; 

seriesOptions必須是一個對象,而不是字符串,所以只要去掉'。

也試試這個:

var plotOptions = { 
    title: { 
      text: data['stratResult'][0] + '<br /><span class="subtitle">Results</span>' 
    }, 
    seriesDefaults: { 
     showMarker: false 
     lineWidth: 1, 
     color: "#FF0000", 
     label: "Call" 
    } 

嘗試放置seriesOptionsseriesDefaults對象內。

+0

改變了這一點,謝謝指出它,但是它仍然不起作用,和以前一樣。 – Argoron

+0

檢查我的編輯,讓我知道它是否工作 –

0

最近我遇到了類似的問題。我必須將系列標籤的名稱作爲變量。我可以通過編寫這樣的seriesoptions變量來解決這個問題

var seriesOptions = [{label:lab [0]},{label:lab [1]},{label:lab [2]},{label :lab [3]}];

希望它可以幫助

相關問題