2

我正在使用 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

4 回答 4

2

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

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

于 2014-04-22T13:23:38.640 回答
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")
});
于 2016-04-16T09:54:54.997 回答
0

正如你所说,这应该是通过签入 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 .. 很差..

但我感谢你的帖子,它帮助我找到了我的问题.. 干杯..

于 2014-05-23T19:00:20.450 回答
0

这可能不会解决您的问题,但它可能会帮助其他人。

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

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

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

做这样的事情会导致

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

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

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

于 2015-05-26T23:01:31.767 回答