私はFlotr2にかなり慣れておらず、いくつかの単純な線グラフを作成しています。それは十分に単純で非常にクールです。ただし、x軸としてタイムスタンプ(月日年と時刻)を入力する必要があります。私は自分のデータベースから時間を取得しているので、それはphpコードであり、次のようにデータをエコーアウトしています。
while($stmt11->fetch()){
echo " [" . $date_of_completion . ", " . $score . "]";
echo ",";
$i++;
$total_score += $score;
}
echo "];";
そして、xaxisのモードを「時間」にし、「日付」を試しましたが、機能しません。それは2001年から2002年の間にすべてを置き続けますが、これは完全に間違っているので、私が与えたデータをどう処理するかがわからないと思います。他の誰かがこの問題に遭遇しましたか?私は彼らが時間通りに与える例を見てきましたが、それは私には意味がありません。
どんな助けでも本当にありがたいです。ありがとう
編集OKここにもう少しコードがあります。これはまさに、PHPからデータを取得し、flotr2が必要とする形式に変換するために私が行っていることです。
if(!($stmt11 = $mysqliprivate->prepare("SELECT date_of_completion, score FROM ". $shs . " WHERE id = ? ORDER BY date_of_completion ASC"))){
echo "Prepare Failed: (" . $mysqliprivate->errno . ") " . $mysqliprivate->error;
}
else{
$total_score = 0;
$stmt11->bind_param("s", $id);
$stmt11->execute();
$stmt11->bind_result($date_of_completion, $score);
$time = time();
echo "var dataset = [";
$i = 0;
while($stmt11->fetch()){
$date = date("U", strtotime($date_of_completion));
echo " [" . $date . ", " . $score . "]";
echo ",";
$i++;
}
echo "];";
$stmt11->close();
}
そして、これが私が実行しているjavascriptです:
graph = Flotr.draw(container, [
{ data : dataset, label : 'Historical Patient Scores', lines:{show:true}, points: {show:true}}
], {
xaxis: {
minorTickFreq: 4,
title : 'Date of Completion',
tickDecimals: 0,
noTicks: 10,
mode : 'time',
timeformat : '%y/%m/%d'
},
yaxis : {
max : 30,
title : 'Score',
tickDecimals:0,
min: 0
},
grid: {
minorVerticalLines: true
},
legend : {
position : 'nw'
},
mouse: {
track: true,
relative:true,
trackDecimals:0,
sensibility: 5
}
});
})(document.getElementById("editor-render-0"));