【问题标题】:Flot charts x-axis time issues... AARGHHHFlot 图表 x 轴时间问题... AARGHHH
【发布时间】:2012-02-13 02:18:44
【问题描述】:

我很难将我的数据显示在以 x 轴作为时间线的 Flot 图表内。这是我的 JSON 文件的缩写副本:

{
  "label": "ServiceReport",
  "data": [[1328983200, 53], [1328986800, 53], [1328990400, 60]]
}

我已经关注了 Flot API 页面上的教程,以及 this one on stackoverflow

没有任何运气。

当修改 x 轴时,这会使图形显示得很好,但 x 轴是空白的。

xaxis: { mode: "time", minTickSize: [1, "hour"]}

这显示 8 到 8 个值(根据数据文件不正确),但没有图形数据:

xaxis: { mode: "time", minTickSize: [1, "hour"],
                min: (new Date("2000/01/01")).getTime(),
                max: (new Date("2000/01/02")).getTime()

            }

基本上,我只想在 x 轴上显示小时(实际上是任何格式:5:00、5 AM,没关系),并使 y 轴与服务值相关。每个数据文件共有 24 个时间戳(一天的数据量)。

非常感谢 Flot 和 JavaScript/jQuery 专家的任何帮助!!!

【问题讨论】:

    标签: javascript jquery flot


    【解决方案1】:

    首先显示时间,使用:

     xaxis: { mode: "time",minTickSize: [1, "hour"],timeformat: "%H:%I:%S"}
    

    我在处理 JSON 数据时遇到了同样的问题,这是由错误的 JSON 编码文件引起的。 您确定您的 JSON 文件真的是 JSON 文件吗? 让我们尝试一些类似的东西来测试它(例如使用 jquery):

    $.getJSON('yourJSONpage.php', 
        function(data) {
            testData=data.pop();
            alert(testData[0]);
    });
    

    最后一点,您的时间戳不正确,正确的时间戳是“1328983200000”而不是“1328983200”,如果您使用 PHP 生成 JSON 数据,请确保对日期执行类似操作:

    $hour=mktime($h+1,$i,$s,$m,$d,$y)*1000;
    

    【讨论】:

    • 好的,问题出在这个时间戳上: *1000 它在您的 JSON 页面中,它会更好地工作。并检查我的答案:-)
    • 这完全是时间戳,它需要以毫秒为单位:)。感谢您的帮助!