我想用數據庫做一些數據可視化。複雜的嵌套循環
起初我使用morris.js,這對我的數據非常有用。我會在之後解釋更多。 現在我試圖用d3.js,因爲我要創建水平堆疊條形,多個圖表行,以及更多...
這是我的表:http://d.pr/i/ooDN (我沒有10分的聲譽,我可以不要發佈我的照片)
我必須在圖表上繪製5條不同的線條。 「Heure」是x軸,其他列是不同的線。
莫里斯,我的數據均是這樣的(在.PHP結束在JSON r_print [{"x":"1","a":"34","b":"15","c":"49","d":"15","e":"3"},
{"x":"2","a":"36","b":"13","c":"49","d":"12","e":"2"}, … ]
其中x是時間數據(與x軸和自動曝光信件是別人線圓點每個小時)
但隨着d3.js,這些陣列不工作了,我必須改變我的PHP來獲得這樣的事情:
[{"x": 1, "y": 5}, { "x": 2, "y": 20}, { "x": 3, "y": 10}, … , { "x": 23, "y": 60}]
[{"x": 1, "y": 13}, { "x": 2, "y": 14}, { "x": 3, "y": 5}, … , { "x": 23, "y": 48}]
其中每行是不同的列。
這是我的PHP:
<?php include 'connexion.php' ?>
<?php
////////////////// out_evo_tat
$requete = $db->prepare('SELECT * FROM out_evo_tat');
$requete->execute();
while($row = $requete->fetch()) {
// $tableau[]=array('x'=>$row['Heure'],'a'=>$row['TAT_CHAINE'],'b'=>$row['TAT_PREA'],'c'=>$row['TAT_GLOBAL'],'d'=>$row['NBR_TESTS'], 'e'=>$row['NBR_TUBES']);
// $tableau[]=array($row['Heure'],$row['TAT_CHAINE'],$row['TAT_PREA'],$row['TAT_GLOBAL'],$row['NBR_TESTS'], $row['NBR_TUBES']);
$tableau[]= array (
array($row['Heure'],$row['TAT_CHAINE']),
array($row['Heure'], $row['TAT_PREA']),
array($row['Heure'], $row['TAT_GLOBAL']),
array($row['Heure'], $row['NBR_TESTS']),
array($row['Heure'], $row['NBR_TUBES'])
);
}
echo json_encode($tableau);
?>
如何修改上面這段代碼以獲得與d3.js可用的東西嗎?
我想我必須使用嵌套循環,但我不能獨自解決這個問題...
我試圖解釋它的最簡單的方式,但它也許是很難理解,因爲我解釋,所以不要猶豫,問我更多。
謝謝
謝謝!我懷疑第一面,但這個工程!但現在我明白瞭如何工作D3 ... – MathieuLuyten
不客氣。代碼的前兩行做了一個矩陣變換,它本質上將矩陣變成了一邊。在使用數組時,這是非常有用的操作。 –
我會記住這一點,非常感謝。你知道d3.js嗎?我遇到了更多的問題,我是否應該在這裏問他們(因爲我使用那些顯示的數據)還是應該創建另一個帖子? – MathieuLuyten