2013-05-06 66 views
0

我正在使用帶有多Yaxis和動態系列的flot的圖表上工作。這裏是我想要做的一個樣本http://jsfiddle.net/4Emr9/3/。現在,問題是,我如何動態地添加y軸。在這個例子中,這個系列被寫了4次,並且在yaxes中被指定了4次。多系列,多Yaxis動態flot

var data = [ 
{ data: generate(0, 10, function (x) { return Math.sqrt(x)}), xaxis: 1, yaxis:1 }, 
{ data: generate(0, 10, function (x) { return Math.sin(x)}), xaxis: 1, yaxis:2 }, 
{ data: generate(0, 10, function (x) { return Math.cos(x)}), xaxis: 1, yaxis:3 }, 
{ data: generate(0, 10, function (x) { return Math.tan(x)}), xaxis: 1, yaxis: 4 } 

];

yaxes: [ { position: 'left', labelWidth : 18}, 
     { position: 'right', tickColor:'black', labelWidth : 18, tickDecimals: 0}, 
     { position: 'right' , tickColor:'black', labelWidth : 18, tickDecimals: 0}, 
     { position: 'right', tickColor:'black', labelWidth : 18} 
     ], 

我有一個動態的系列圖來繪製,我的代碼是這樣的。

data.push({ label: selectedItem, data: dataPoints }); 
$.plot(placeholder, data, options); 

回答

0

如果你有一個options對象和data對象,只需添加到他們兩人的動態,當您去:

options.yaxes = []; 
for (var i=1; i<dataSets.length;i++){ 
    data.push({ label: selectedItem, data: dataSets[i], yaxis:i }); 
    options.yaxes.push({ position: 'right', tickColor:'black', labelWidth : 18, tickDecimals: 0}); 
} 

這種想象,你的源數據來作爲點的數組的數組所謂dataSets,看起來是這樣的:

dataSets = [ 
    [[0,1],[1,2],...], 
    [[0,5],[1,1],...], 
    //etc 
]; 
+0

怎麼樣在選項y軸?我應該把一個動態的yaxis放在那裏嗎? yaxes:[{position:'left'}]是... yaxes:anArrayOfYAxis – gerald 2013-05-09 13:16:43

+0

好的..這個設置適用於我..我只是不設置選項和代碼中的yaxes ---> data.push ({label:selectedItem,data:dataPoints,index:data.length + 1,yaxis:data.length +1})謝謝Ryley – gerald 2013-05-09 15:08:52