提问者:小点点

使用php脚本中的数据显示Flot条形图


我有一点麻烦,正确显示这个flot条形图,flot留档到目前为止还不能帮助我。我将首先提供背景,然后解释我的问题是什么:

>

$sql = "select unix_timestamp(date(Date_Found))*1000 as day, count(Virus_Name) as nb from machine_virus_info where Virus_name!='NULL' group by unix_timestamp(date(Date_Found))*1000;";
$result = mysql_query($sql);

while ($row = mysql_fetch_array($result, MYSQL_ASSOC))               
{
        $array[] = array ($row['day'], $row['nb']);


        #when echoed the array data looks like this using just date  date():
        #[["20130226000","2"],["20130227000","1"]]
}

echo json_encode( $array );

下面是我html中的JS:

<script  id="virus_scan" language="javascript" type="text/javascript">
$(function()
    {
        var options = {
            series:
            {
                lines:  { show: false },
                points: { show: false }, 
                bars:
                {
                    show: true,
                    lineWidth: 1,
                    fill: 1,
                    fillColor: null,
                    align: "left",
                    barWidth: 24 * 60 * 60 * 1000,
                    horizontal: false
                }
            },
            xaxis:  { mode: "time" ,timeformat: "%y/%m/%d" },
            legend: { position:"nw" }
        };

        $.getJSON("php_scripts/virus_scan.php",
            function(data)
                {
                    $.plot($("#virus_scan"),data,options);
                }
            );
    }
);
</script>
  • 根据上面的信息,这是我使用unix_timestamp(date())得到的条形图:

注意:当我们在使用unix_时间戳(date(date))时回显json_encode($array)时,数组打印如下:

[["1361833200000","2"],["1361919600000","1"]]
  • 这是我在使用date()而不是unix_timestamp(date())时得到的条形图:

注意:当我们回送json_encode($array)而只使用日期(date)时,数组打印如下:

[["20130226000","2"],["20130227000","1"]]

>

  • 我想在x轴上正确显示日期
  • 我想在y轴上显示nb的最大值

    如果有人能分享一些帮助我更好地理解和识别问题的信息,因为我不确定问题是来自php处理数据的方式还是条形图配置。

    谢谢你,斯马克


  • 共1个答案

    匿名用户

    不要提供一个点数组,而是使用一个系列对象数组,如下所示:

    [{
        data: [[timestamp, value], ...]
        label: "A"
    }, {
        data: [[timestamp, value], ...]
        label: "B"
    ]
    

    请参阅文档中的数据格式部分,下面有几段。

    您还需要确保时间戳和值是整数,而不是示例中显示的字符串。

    最后,您的时间戳必须是JavaScript(UNIX*1000)时间戳;仅使用date的尝试肯定行不通。