0

アドバイスをお願いできますか?javascriptオブジェクトを返す関数があります

function get_temp(){
    var datasets_temp = {
        "sens1": {data: [[1340803113,22.9],[1340803474,23],[1340803836,23],[1340804197,23.1]] },        
        "sens2": {data: [[1340846482,23],[1340846843,23],[1340847204,23],[1340847566,23]] },
        "sens3": {data: [[1340868157,23.1],[1340868518,22],[1340868879,23.2],[1340869241,23.2]] }};
  return datasets_temp; 
}

グラフの描画:

var plot = $.plot($("#temp_graph"), get_temp(), $.extend(true, {}, options, {
        xaxis: {min: 0, max: 50}}));

どこが問題なのかわからないのですが、なぜ機能しないのですか。

4

1 に答える 1

1

あなたは正しい方向に進んでいますが、系列データは、データの各セットがそのプロパティである1つのオブジェクトだけでなく、系列オブジェクトの配列である必要があります。

あなたが持っているべきものはこのようなものです:

var dataset_temp = [  //an array
  {   //of series objects
     label: 'sens1',
     data: [[1340803113,22.9],[1340803474,23],[1340803836,23],[1340804197,23.1]]
  },
  {
     label: 'sens2',
     data:  [[1340846482,23],[1340846843,23],[1340847204,23],[1340847566,23]]
  },
  {
     label: 'sens3',
     data: [[1340868157,23.1],[1340868518,22],[1340868879,23.2],[1340869241,23.2]]
  }
];

別の問題があります。それは、明らかにx軸を時間としてプロットしているが、タイムスタンプ(つまり1340846482)はjavascriptタイムスタンプではなく、「unix」タイムスタンプであるということです。javascriptは秒単位ではなくミリ秒単位でタイムスタンプをカウントするため、必要なのはすべてのタイムスタンプに1000を掛けることです(つまり1340846482000正しい)。その他の注意事項については、この例のテキストを参照してください。

于 2012-06-28T15:22:59.803 に答える