我想知道是否可以用Flot图表来做,因为我不确定。。。
我在数据库中有一个表,有3行:Date Start,Date End,medicing
Mi PHP代码:

$sql = "SELECT * FROM medications ORDER BY DateStart";
$stmt = $PDO -> query($sql);
$result=$stmt -> fetchAll(PDO::FETCH_ASSOC);

foreach ($result as $row){
$dateini= $row['DateStart'];
$datend= $row['DateEnd'];
$medic= $row['Medication'];

$data1 = array(strtotime($dateini)*1000,$medic);
$data2 = array(strtotime($datend)*1000,$medic);

$data3[] = array($data1,$data2);

}

如果我这样做了:
echo json_encode($data3);

我得到阵列:
[[145653120000,“12”],[1456704000000,“12”],[[1456531200000,“16”],[1456704000000,“16”]],[[1456617600000,“13”],[1456790400000,“13”]],[[1456704000000,“14”],[1457049600000,“14”]]
<script>
var data3 = <?php echo json_encode($data3)?>;

$(function() {
var datasets = [
{
    label: "Medication",
    data: data3,
    yaxis: 1,
    color: "Yellow",
    points: { symbol: "diamond",  fillColor: "Yellow",show: true, radius: 6}

}
];

 $.plot($("#flot-placeholder"), datasets ,options);
</script>

这:$.plot($(“35; flot placeholder”)、数据集、选项)不打印任何内容,但如果我打印:
$.plot($("#flot-placeholder"), data3,options);

我明白了
php - 图表(阵列3值)-LMLPHP
有可能得到图形写入数据集(在$.plot中)而不是数据3?

最佳答案

datasets阵列有两个问题:
您的data3数组有多个数据序列,但您尝试将其全部放入datasets数组中的一个数据集对象中。将每个数据系列放在一个单独的对象中(必要时有自己的选项)。

var datasets = [{
    label: "Medication",
    data: data3[0],
    yaxis: 1,
    color: "Yellow",
    points: {
        symbol: diamond,
        fillColor: "Yellow",
        show: true,
        radius: 6
    }
}, {
    label: "Medication",
    data: data3[1],
    yaxis: 1,
    color: "red",
    points: {
        symbol: diamond,
        fillColor: "red",
        show: true,
        radius: 6
    }
}, ... ]

Flot没有内置的diamond符号,您必须提供一个绘制菱形的函数。
function diamond(ctx, x, y, radius, shadow) {
    var size = radius * Math.sqrt(Math.PI) / 2;
    ctx.moveTo(x - size, y);
    ctx.lineTo(x, y + size);
    ctx.lineTo(x + size, y);
    ctx.lineTo(x, y - size);
    ctx.lineTo(x - size, y);
}

有关完整的工作示例,请参见fiddle
php - 图表(阵列3值)-LMLPHP

关于php - 图表(阵列3值),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36532076/

10-13 07:56