在Flot图数据上反转数据点

时间:2012-03-21 17:33:48

标签: javascript jquery flot

我要显示大量的json数据,遗憾的是,它不是格式为[x,y]的flot默认格式,而是格式[y,x],现在,我已经试着这样做:

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

和xaxis,yaxis 1和2值的其他组合,但没有任何变化,我真的需要我的线条是水平的而不是垂直的。

flot的标题是:

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

剧情是: http://code.google.com/p/flot/

2 个答案:

答案 0 :(得分:3)

你可以遍历整个数组。

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 :(得分:1)

在@ 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]);​

Working Example