具有多个系列的HighCharts

时间:2014-04-15 19:30:16

标签: javascript json highcharts

下面是我的表数据,我已将其转换为JSON并将其链接到HighCharts。 但我不确定如何在样条曲线中显示不同的系列。我的系列将是" LIST"在X轴上"时间"和Y将分别携带每个系列0和1的状态。

系列" LIST"可以是任何现在它显示" A" " B"" C"它可以有更多或更少。基于可用的系列,应该绘制图表。我也粘贴了表格的JSON数据。

LIST  Time   Status
 A     22:05   0
 B     22:10   1
 C     22:30   1
 A     22:40   0
 C     22:50   1
 B     22:60   1

 [{"LIST":"A","Status":"0","Time":"22:05"},{"LIST":"B","Status":"1","Time":"22:10"},
 {"LIST":"C","Status":"1","Time":"22:30"},{"LIST":"A","Status":"0","Time":"22:40"},
 {"LIST":"C","Status":"1","Time":"22:50"},{"LIST":"B","Status":"1","Time":"22:60"}]

我在代码中尝试了以下但无济于事。以下是代码

 var handlerURL = "http://localhost:50687/Handler.ashx;
         $.ajax({
             url: handlerURL,
             type: "GET",
             datatype: "json",
             contentType: 'application/json',
             complete: function (json) {
                 var jsonData = jQuery.parseJSON(json.responseText);
                 var List = _.pluck(jsonData, 'List');
                 period = _.pluck(jsonData, 'Time');
                 status = _.pluck(jsonData, 'Status');
                 //                     var dateTime = [];
                 //                     for (i = 0; i < period.length; i++) {
                 //                         dateTime = (period[i]);
                 //                     }
             }

         });
          options = {
             chart: {
                 renderTo: 'container',
                 type: 'spline',
                 marginRight: 130,
                 marginBottom: 50
             },

             setOptions: ({
                 global: { useUTC: true }
             }),

             title: {
                 text: 'Live Data',
                 x: -20
             },
             subtitle: {
                 text: '',
                 x: -30
             },
             xAxis: {
                 categories: period,
                 type: 'datetime',
                 tickPixelInterval: 100,
                 plotLines: [{
                     width: 5,
                     color: '#808080'
                 }]
             },
             yAxis: {
                 min: 0, max: 1,
                 title: {
                     text: 'Status'
                 },
                 plotLines: [{
                     value: 0,
                     width: 1,
                     color: '#808080'
                 }]
             },
             tooltip: {
                 formatter: function () {
                     return '<b>' + this.series.name + '</b><br/>' +
                        this.x + ': ' + this.y;
                 }
             },
             legend: {
                 layout: 'vertical',
                 align: 'right',
                 verticalAlign: 'top',
                 x: -10,
                 y: 100,
                 borderWidth: 0
             },
             series: [{
                 data: status
             }]
         }

         options.xAxis.categories = period;
         chart = new Highcharts.Chart(options);

1 个答案:

答案 0 :(得分:0)

一般来说,有一些建议:

  • 您可以在同一时间使用或分类轴或日期时间:

         xAxis: {
             // categories: period, - remove that?
             type: 'datetime',
             tickPixelInterval: 100,
             plotLines: [{
                 width: 5,
                 color: '#808080'
             }]
         },
    
  • 要创建多个系列,您需要在数组中使用多个系列对象,如下所示:

         series: [{
             data: status_1
         }, {
             data: status_2
         }]
    
  • status_1 / status_2等应为该格式:

         [[timestamp1, value1], [timestamp2, value2], ... , [timestampN, vlaueN]]