6

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

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

这是 txt 文件中的数据:[["7/11/2011 04:00:00am",85.0],["7/12/2011 04:00:00AM",87.4],["7/13/ 2011 04:00:00AM",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>
4

1 回答 1

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 - 对象:

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;
}

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

于 2011-07-20T15:20:37.430 回答