2012-03-21 3 views
1

私は表示するjsonデータのトンがあります。残念ながら、浮選データのデフォルト値は[x,y]ではなく、[y,x]の形式です。この:Flotグラフデータの反転データポイント

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

そして、他のcombinatios x軸のは、1と2の値をY軸が、何も、私は本当に私のラインが水平方向と垂直方向ではないことが必要、変化しません。

FLOTのヘッダーは次のとおりです。あなただけの全体の配列を反復処理することができます http://code.google.com/p/flot/

+0

あなたのデータは、フォーマットY、Xには何を意味するのですか?これはすでにjavascript配列ですか? – Mark

答えて

3

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

FLOTはです。

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] 
]; 

*/ 

これを機能させると、ボーナスポイントになります。これを解決するよりエレガントな方法があります。

+0

さて、なぜ私はデータを大量に持っていると言っていたのですが、手動で逆転させるとグラフに応じて高価になることがありますが、flot APIのほうがこれが可能であると示唆しているようです。 。 – tomato

+1

@tomatoなぜあなたはflotのプラグインなどにリンクしていませんか?文字通り何千ものjQueryプラグインがあります。とにかく "トン"はどれくらいですか? – Incognito

+0

申し訳ありませんが、私はそれがよく知られていたと思った、トンは、サーバーの監視値を描画しているので、私は5kの値を一度見たが、それはトップレベルではないと思うので、 – tomato

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