我正在尝试使用数据库进行一些数据可视化。
起初我使用 morris.js,它对我的数据非常有效。稍后我会解释更多。我现在正在尝试使用 d3.js,因为我必须创建水平堆叠条、多条图表线等等……</p>
这是我的桌子:http ://d.pr/i/ooDN (我没有 10 名声望,我不能张贴我的照片)
我必须在图表上绘制 5 条不同的线。“Heure”是 x 轴,其他列是不同的行。
使用 morris,我的数据是这样的(.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 轴,ae 字母是每个小时的其他线点。)
但是使用 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 的内容?
我想我必须使用嵌套循环,但我自己无法解决它......
我试图用最简单的方法来解释它,但正如我解释的那样,它可能很难理解,所以不要犹豫再问我更多。
谢谢