私はflotを使ってデータをプロットしようとしています。私はこれを単一のデータセットで処理していましたが、複数のデータセットを使用するようにコードを修正しようとしたとき、エラーに遭遇しました。私はそれが私が作った変更だと確信していますが、私の人生のために私はそれを追跡することはできません。ajaxを使用してflotで複数のデータセットをプロットする - データが正しく表示されない
Y軸は、-1.0、-0.5、0、0.5、および1.0の値を示しますが、Imの値はほとんどなく、X軸データもありません。グラフは空白になります。
私はStackOverflowの評判グラフに似た何かを達成しようとしていますが、これは異なる数値を表します。 data
ペアの最初の値はタイムスタンプ(正確に計算されていると思います)を意味し、data
ペアの2番目の値はプロットする値です。
私はではないことを確信しました。では私の価値観が引用されていますが、これは私が最もよく見た問題です。
問題を指摘するためのフィードバックや援助があれば幸いです。
stats.js
function plotField(){
var field = 'activeUsers,totalUsers';
var url = '/api/consoleGet_stats?field='+field;
$.ajax({
url: url,
method: 'GET',
dataType: 'json',
success: function(datasets){
var i = 0;
console.log(datasets);
$.each(datasets, function(key, val){
val.color=i;
i++;
var data = [ $(this) ];
console.log(data);
var options = {
lines: { show: true },
points: { show: true },
xaxis: {mode: 'time', timeformat: "%y/%m/%d", tickDecimals: 0, tickSize: 1 }
};
var placeholder = $("#placeholder");
$.plot(placeholder, data, options);
});
}
});
}
consoleGet_stats.php
<?php
//simplified for example purposes
$fields=explode(",",$_REQUEST['field']);
foreach ($fields as $field){
$rows=$dbConnect->getRows('select date, ' .$field. ' from websiteStats order by id asc');
$resultData = array('label' => $field);
foreach($rows as $row){
$t = strtotime($row['date']." UTC") * 1000;
$resultData['data'][]=array($t, (int)$row[$field]);
}
$results[]=$resultData;
}
die(Json_encode($results));
?>
コンソール出力
[Object { label="activeUsers", data=[6]}, Object { label="totalUsers", data=[6]}]
[[Object { label="activeUsers", data=[6], color=0}]]
[[Object { label="totalUsers", data=[6], color=1}]]
は、私はより簡略化にコードを変更することで問題を解決することができた
[
{"label":"activeUsers","data":[[1334583090000,26],[1334669491000,26],[1334755893000,26],[1334842290000,26],[1334928691000,26],[1335015093000,26]]},
{"label":"totalUsers","data":[[1334583090000,150],[1334669491000,170],[1334755893000,193],[1334842290000,200],[1334928691000,225],[1335015093000,257]]}
]
私が知っていることから、 '$の.plot'は' data'パラメータとしてオブジェクトの配列を取りますが、あなたは、オブジェクトの配列の配列を渡すように見えます。また、[反復せずに複数の系列を一度にプロットする](http://people.iola.dk/olau/flot/examples/basic.html)も可能です。 – Maehler
これは、何かが見つからない限り、flot ajaxの例に示されているようにJSON文字列をデコードした結果の配列構造体です。また、私は今色を追加するためにiteratingです。それは後に別々に扱われます。 – Dutchie432