Обратные точки данных на графике Flot - PullRequest
1 голос
/ 21 марта 2012

У меня есть тонна данных json для отображения, что, к сожалению, вместо того, чтобы быть в формате [x,y], который является значением по умолчанию для flot, это в формате [y,x], теперь я попытался сделать это:

var row = {
    data: $data.datapoints,
    label: $data.target,
    yaxis: 2,
};

И другие комбинации значений xaxis, yaxis 1 и 2, но ничего не меняется, мне действительно нужно, чтобы мои строки были горизонтальными, а не вертикальными.1008 *

*! Javascript plotting library for jQuery, v. 0.7.

Флот находится по адресу: http://code.google.com/p/flot/

Ответы [ 2 ]

3 голосов
/ 21 марта 2012

Вы можете просто перебрать весь массив.

var initialArray = [
 [2,1],
 [4,3],
 [6,5],
 [8,7]
];

var cleanArray = [];

var i=0;
for (i=0;i<initialArray.length;i++){
  cleanArray[i] = [initialArray[i][1], initialArray[i][0],]
}

/*Array is now:
[
  [1,2],
  [3,4],
  [5,6],
  [7,8]
];

*/

Бонусные баллы, если вы сделаете это функцией.Есть более элегантные способы решить эту проблему.

1 голос
/ 21 марта 2012

работа с ответом @ Inconito ... вот еще один способ «перевернуть» значения в массиве.

function fixData(d /* data array */) {
    d.forEach(function(i,el) {
        return [el[1],el[0]];
    });
}
/* example data generation */
var d1 = [], d2 = [];
for( var i = 0; i < 100000; i++ ) {
    var y = i,
        x = i;
    d1.push([y,x]);
    d2.push([y/2,x/4]);
}
/* reverse the data */
fixData(d1);
fixData(d2);
/* plot it */
$.plot($("#placeholder"), [d1,d2]);​

Рабочий пример

...