2016-01-25 4 views
0

У меня есть диаграмма в диаграммах, и я испытываю трудности с передачей данных. Сейчас проблема заключается в том, что график полностью вертикальный, и он получает неправильные точки для графика. Ее говорят его итоговые 80 и 2011. Итоги должны быть 50 и 80.Набор массивов данных с высоким качеством

var myarrays = [2011, 1, 12, 50, 2011, 2, 13, 80]; 

data: 

      (function() { 

      var data = []; 

      for (var i = 0; i < myarrays.length; i++) 
      { 
       data.push(myarrays[i], myarrays[i + 1], myarrays[i+2], myarrays[i+3]); 
       i+2; 
      } 
      return data; 

      }()) 

из положить должен вернуться, два комплекта, потому что серия занимает в 4-х параметров,

[2011, 1, 12, 50] 
[2011, 2, 13, 80] 

Кроме того, когда я вручную передать в переменных, формат, который, кажется, работает это [[Date.UTC (2011, 7, 11), 101]

Так есть ли способ превратить возвращение к выше формат?

var myarrays = [2011, 1, 12, 50, 2011, 2, 13, 80]; 
 

 
$(function() { 
 
    $('#container').highcharts({ 
 
     chart: 'spline', 
 
    }, 
 
    series: [{ 
 
     name: 'MySeries', 
 
     data: 
 
     (function() { 
 

 
      var data = []; 
 

 
      for (var i = 0; i < myarrays.length; i++) { 
 
      data.push(myarrays[i], myarrays[i + 1], myarrays[i + 2], myarrays[i + 3]); 
 
      i +=3; 
 
      } 
 
      return data; 
 
     }] 
 
    }); 
 
)]);
<script src="https://code.highcharts.com/highcharts.js"></script> 
 
<div id="container" style="height: 400px"></div>

+0

Не должно быть 'var myarrays = [[2011, 1, 12, 50], [2011, 2, 13, 80]];'? – lucas

+0

Измените это, чтобы просто показать 2 на графике – jumpman8947

ответ

0

данные могут быть предоставлены в серии сплайна в следующих формах ...

data = [y1, y2, ..., yn]; 
data = [[x1, y1], [x2, y2], ..., [xn, yn]; 
data = [[name1, y1], [name2, y2], ..., [namen, yn]]; 
data = [{x: x1, y: y1}, {x: x1, y: y2}, ... {x: xn, y: y2}]; 

где х и у значения числа и значения имен являются строками. Если значения x не включены, значения x автоматически рассчитываются начиная с 0 и увеличиваются на 1.

В вашем примере myarray имеет форму [year1, month1, day1, total1, year2, month2, day2, total2 , ...], где каждые четыре значения представляют собой единую точку данных в диаграмме. Вам нужно совместить значения года, месяца и дня с одним числом или строковым значением, которое затем будет использоваться в качестве значения x или имени для точки данных. Общее значение будет использоваться как значение y для точки данных. Тогда код может выглядеть примерно так:

var myarrays = [2011, 1, 12, 50, 2011, 2, 13, 80]; 

$(function() { 
    $('#container').highcharts({ 
     chart: { 
      type: 'spline' 
     }, 
     series: [{ 
      name: 'MySeries', 
      data: (function() { 
       var data = []; 
       for (var i = 0; i + 3 < myarrays.length; i += 4) { 
        var name = myarrays[i] + "/" + myarrays[i + 1] + "/" + myarrays[i + 2]; 
        var y = myarrays[i+3]; 
        data.push([name, y]); 
       } 
       return data; 
      })() 
     }] 
    }); 
}); 
Смежные вопросы