我使用flot試圖繪製一些數據。我有一個單一的數據集的工作,當我試圖修改代碼使用多個數據集,我遇到了一個錯誤,我很難跟蹤並停止工作。我確信這是我做出的改變,但對於我的生活,我無法追蹤它。使用ajax繪製flot多個數據集 - 數據沒有正確顯示
Y軸顯示-1.0,-0.5,0,0.5和1.0--幾乎不需要Im值,也沒有X軸數據。該圖表顯示爲空白。
我試圖完成類似於StackOverflow上的信譽圖的東西,但是這將代表不同的數值。 data
對的第一個值應該是一個時間戳(我認爲我已經正確計算),data
對的第二個值是要繪製的值。
我確定我做不是有我的價值在引號,我看到的是最常見的問題之一。
任何反饋或協助指出這個問題將不勝感激。
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}]]
返回從螢火JSON(格式化添加此張貼)
[
{"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
那麼,這是由解碼JSON字符串得到的結果數組結構,即使在我的例子中,除非我丟失了某些東西。此外,我現在迭代添加顏色。這將在稍後處理。 – Dutchie432