FlotChart 0.8.2时间模式需要flot.time插件

时间:2014-04-22 10:17:55

标签: jquery charts flot cakephp-2.4.7

我正在使用flotchart制作自定义线图(在ajax中调用),但我可能做错了,因为他不会显示,我收到错误:

  

未捕获错误:时间模式需要flot.time插件。

但是包含了jquery.flot.time.js所以我不明白为什么会出现这个错误。

我找到了这个链接:https://github.com/flot/flot/issues/1016 这就解释了为什么flot会抛出这个错误,但我并不了解一切......

有人可以更轻松地向我解释或只是检查我的代码中有什么问题吗?

$(function() {
    var data = [
        {
        label: "A0-P1-M1 10cm", 
        data: 
            [
                [1388538000000, 29.8848],
                [ // .. some data]
            ]
        }
    ];
    var options = {
        legend: {
            noColumns: 1
        },
        xaxis: {
            mode: "time",
            timeformat: "%d/%m %H:%M",
            tickLength: 10
        },
        yaxis: {
            show: false
        }
    };
    var plot = $.plot("#placeholder13", data, options);
});

感谢您的时间和救命。 抱歉我的英文。

4 个答案:

答案 0 :(得分:2)

正如错误所说,你没有包含时间插件。确保您的包含路径正确,并且在包含Flot本身后包含插件。

由于您的包含问题,我们需要查看您的HTML才能更具体。

答案 1 :(得分:1)

我的代码出现了这个错误:

jQuery.getScript("jquery.flot.min.js");
jQuery.getScript("jquery.flot.time.min.js");

修复此问题以尊重加载顺序:

jQuery.getScript("jquery.flot.min.js",function(){
    jQuery.getScript("jquery.flot.time.min.js")
});

答案 2 :(得分:0)

正如你所说的那样,如果你出去下载它的话,应该用check-in 1016来解决这个问题。与@DNS所说的相反,这是从另一个文件中抛出的,与您是否包含flot.time.js文件无关。该修复程序位于该文件中(因此您显然需要正确包含它),但它仍无法使用您发布的代码...修复代码的方法是简单地在您的文件周围添加{ }系列:

    var data = [
        {
        label: "A0-P1-M1 10cm", 
        data: 
            [
                [1388538000000, 29.8848],
                [ // .. some data]
            ]
        }
    ];
    //Becomes:
    var data = [
        {
        label: "A0-P1-M1 10cm", 
        data: 
            [  
                {   //<---Attention!
                    [1388538000000, 29.8848],
                    [ // .. some data]
                }   //<---Attention!
            ]
        }
    ];

...一般来说,这描述的问题是Flot API无法确定你的数据在你的数据中的位置(或者即使你有任何系列)并且它解释了这个..um ..很差.. < / p>

但是我想你的帖子帮助我找到了我的问题..干杯......

答案 3 :(得分:0)

这可能无法解决您的问题,但可能有助于其他人。

我注意到在创建需要执行chart.getOptions().xaxis.whateverchart.getOptions().xaxes[0].whatever的图表后更改图表选项。所以我开始计划动态地执行所有选项,后者通过复制和粘贴来改变它...

jQuery(...).plot(..., ..., {
  ...,
  xaxis: {
    aFewOptions: ...,
    ...
  },
  xaxes: {
    '0': {
      theSameFewOptions: ...,
      ...
    }
  }
});

首次创建图表时不应包含整个xaxes [0],即使后者需要它...

做这样的事情会导致

  

未捕获错误:时间模式需要flot.time插件。

即使加载了flot.time插件......

我的错误是复制和粘贴我不应该写的代码......看起来你没有这样做过这样的事情......