【问题标题】:Plotting the below json in a HighChart在 HighChart 中绘制以下 json
【发布时间】:2016-01-27 10:00:13
【问题描述】:

以下是Json格式1.1的json对象

    {
       "JSONVersion":1.1,
       "DataBehaviour":"Timebased",
       "MeasurementUnit":"MB",
       "Error":"",
       "DataSeries":[
          {
             "name":"AvailableMBytes",
             "data":[
                {
                   "x":1396602300000,
                   "y":"1156"
                },
                {
                   "x":1396605900000,
                   "y":"1137.05"
                }
             ]
          }
       ]
}

是否可以在高图表中绘制数据?我的代码看起来像这样,但没有显示任何输出。

$(document).ready(function() {
    var options = {
        chart: {
            renderTo: 'container',
            type: 'spline'
        },
        series: [{}]
    };

    $.getJSON('data.json', function(data1) {
        options.series[0].data = data1.data;
        var chart = new Highcharts.Chart(options);
         });

});

【问题讨论】:

  • 这样设置会不会更容易:options.series = data1.DataSeries;?另外,您的y 值是否需要是字符串("y":"1137.05")?不能是简单值:"y": 1137.05?
  • 如果 DataSeries 数组中有多个项目(假设是),它可以通过@PawełFus 建议的方式完成,这意味着 $.getJSON('data.json', function(data1) { $.each(data1.DataSeries,function(item){ options.series = item; var chart = new Highcharts.Chart(options); }) });
  • 最好有 addSeries(item) 函数为 DataSeries 中的每个项目添加一个系列

标签: javascript jquery json highcharts


【解决方案1】:

如果它是一个如问题所示的数组,则对其进行迭代 这是working demo的链接

json 需要有数字而不是字符串:

{
   "JSONVersion":1.1,
   "DataBehaviour":"Timebased",
   "MeasurementUnit":"MB",
   "Error":"",
   "DataSeries":[
      {
         "name":"AvailableMBytes",
         "data":[
            {
               "x":1396602300000,
               "y":1156 
            },
            {
               "x":1396605900000,
               "y":1137.05
            }
         ]
      }
   ]
}

和图表代码

$.getJSON('data.json', function(data1) { 
    options.series[0].data = data1.DataSeries[0].data;
    options.series[0].name = data1.DataSeries[0].name;
    var chart = new Highcharts.Chart(options);
     });

您可以直接将“item”串联起来,因为它有名称和数据。

【讨论】:

  • 我收到一个错误TypeError: obj is undefined .each() jquery-1.11.3.js:358 <anonymous> new%201.html:19 jQuery.Callbacks/fire() jquery-1.11.3.js:3148 jQuery.Callbacks/self.fireWith() jquery-1.11.3.js:3260 done() jquery-1.11.3.js:9314 .send/callback()
  • 请参阅 plnkr.co/edit/BxbUmIkq6WaYw4FDbOBS?p=preview ,您的 json 包含字符串而不是数字。你还想绘制多条样条曲线还是单条曲线?
猜你喜欢
  • 1970-01-01
  • 2013-12-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-28
  • 1970-01-01
相关资源
最近更新 更多