2011-12-27 9 views
1

皆さん!私は私のx軸に関する問題があります。私はflotのapiを使用しています。私の場合は、グラフをプロットするためにmysqlからデータを抜き出しています。両方の軸でmysqlからデータを抽出する必要があります。たとえば、mysqlはY軸、つまり20のデータを抽出します。私のx軸は、その特定の時刻のmysqlからデータを抽出します。 スクリプトを数回書き直そうとしましたが、結論は出ませんでした。変数optionsを作成しようとしましたが、うまくいきませんでした。これは、x軸の文をyの直下に置いた場合にのみ機能します。新しい変数のオプションを作成するというアイデアは、私がmysqlからデータを連続的に収集するためにx軸のループを実行したかったからです。以下の引用では、選択した配列でシミュレートしました。javascript php mysql flot database

$(function() { 
var graph = []; 
var power = <?php echo json_encode($data);?>; 
var time = <?php echo json_encode($times);?>; 
var row = <?php echo json_encode($nrow);?>; 
//alert(time.toSource()); 




for (var i = 1; i < row; i += 1) { 

//var test = time[i]; 
//alert(test); 
//graph.push([i, power[i]]); 

var hhmm = time[i].split(":"); 

var hh = parseInt(hhmm[0]); 
var mm = parseInt(hhmm[1])/60; 
var tt = hh+mm; 
//var tx = hh; 

graph.push([tt, power[i]]); 

}

var options = { 
xaxis: { ticks:[[1,time[1]],[2,time[2]],[3,time[3]],[4,time[4]],[5,time[5]],[6,time[6]],[7,time[7]],[8,time[8]]]} 

}。

// alert(options.toSource());

var plot = $.plot($("#placeholder"), 
     [ { data: graph, label: "Power" } ], { 
      series: { 
       lines: { show: true }, 
       points: { show: true } 
      }, 
      grid: { hoverable: true, clickable: true }, 
      yaxis: { min: 0, max: 25 }, 
      //xaxes: [ { mode: 'time' } ] 
      //xaxis: { mode: "time"} 
      //xaxis: { mode: "time",timeformat:"%H/%M" } 
      //xaxis: { ticks:[[1,time[1]],[2,time[2]],[3,time[3]],[4,time[4]],[5,time[5]],[6,time[6]],[7,time[7]]]} 


     }), options); 

私はオプション機能を変更しましたが、機能しません。

var options = { 
series: { 
       lines: { show: true }, 
       points: { show: true } 
      }, 
      grid: { hoverable: true, clickable: true }, 
      yaxis: { min: 0, max: 25 }, 
      for (var i = 1; i < row; i += 1) 
      { 
      xaxis: { ticks:[[i,time[i]]} 
      }; 

}私はあなたが正しくxaxisをご希望のフォーマットを推測している場合

+0

VARオプション= { 系列:{ 行:{ショー:真}、 点:{ショー:真} }、 グリッド:{hoverable:真、クリッカブル:真}、 y軸:{分: 0、max:25}、 for(var i = 1; i <行; i + = 1) { xaxis:{[i、time [i]]} }; }; – Eugene

+0

質問を編集して、 'xaxis'がどのように表示されるべきかの例を提供してください。 – zrvan

答えて

0

は、次のことを試みることができる:

var ticks = []; 
for (var i = 1; i < row; i += 1) 
{ 
    ticks.push ([i, time[i]]); 
} 
var xaxis = { 
    ticks: ticks, 
    // ... any additional properties... 
}; 

これは、順番に各配列の配列である性質ticksを持つオブジェクトxaxisを作成します。サブアレイには2つの要素があり、カウンタは1から始まり、それぞれitimeの配列の値を持ちます。私はあなたがoptionsを作成するには、このようなコードを使用したいと思うと仮定します

var options = { 
    series: { lines: { show: true }, 
    points: { show: true } }, 
    grid: { hoverable: true, clickable: true }, 
    yaxis: { min: 0, max: 25 }, 
    xaxis: xaxis 
}; 

あなたが前xaxis配列を作成する必要があります、オブジェクトの初期化にfor()ステートメントを使用して、変数名を使用することはできませんoptionsオブジェクトを作成するとき。