需要使用json文件中的多个系列,基于日期的数据加载jqplot的示例

时间:2011-07-10 00:16:49

标签: jqplot

一直在搜索,找不到我想要的东西。需要将多个系列加载到一个jqplot中,每个系列都来自自己的数据文件。

此处的示例http://www.jqplot.com/tests/data-renderers.php确实显示了如何从文件加载系列,但是当我将文件转换为具有日期数据时,它会停止工作,可能只是格式化问题,但无法解决。我做错了什么?

以下是txt文件中的数据: [[“7/11/2011 04:00:00 am”,85.0],[“7/12/2011 04:00:00 AM”,87.4],[“7/13/2011 04:00:00 AM”,90.0 ]

以下是代码:

<script class="code" type="text/javascript">$(document).ready(function(){
    var line = [ ];
var ajaxDataRenderer = function(url, plot) {
    var ret = null;
    $.ajax({
        // have to use synchronous here, else returns before data is fetched
        async: false,
        url: url,
        dataType:'json',
        success: function(data) {
            ret = data;
        }
    });
    return ret;
};

var jsonurl = "./jsondata1.txt";

plo12 = $.jqplot('chart2', jsonurl,{
    title: 'AJAX JSON Data Renderer',
    dataRenderer: ajaxDataRenderer,
    axes: {
      xaxis: {
          renderer:$.jqplot.DateAxisRenderer,
          tickInterval: '1 day',
          tickOptions:{formatString:'%y/%m/%d'}
      }
  }
});
});</script>

1 个答案:

答案 0 :(得分:2)

您可以使用dataRendererOptions参数声明可能的文件,如下所示:

plo12 = $.jqplot('chart2', jsonurl,{
    title: 'AJAX JSON Data Renderer',
    dataRenderer: ajaxDataRenderer,
    dataRendererOptions: {file1:'name_of_file_1', file2:'name_of_file2'}
    axes: {
      xaxis: {

接下来使用for-each迭代dataRendererOptions - Object:

var ajaxDataRenderer = function(url, plot,op) {
    var ret = null;
$.each(op,function(i,n) {
    $.ajax({
        // have to use synchronous here, else returns before data is fetched
        async: false,
        url: url+'/'+i,
        dataType:'json',
        success: function(data) {
            ret[]= data;
        }
    }); //end ajax
 });//end each
return ret;
}

此代码不是测试,但背后的想法可以满足您的需求。