2012-05-09 12 views
0

私は非常にjavascriptを初めて使っています。JavaScriptをグラフに描く

var sampleData = [ 
            { Period: '1981', Size: 80.01 , Age: 32 }, 
            { Period: '1981', Size: 89.11, Age : 35 }];  

私はチャートを描画するためにjquery.flot.jsライブラリを使用しています。ここでは、グラフを描画するための一例であり、それは正常に動作します:

var d1 = []; 
    for (var i = 0; i < 14; i += 0.5) 
     d1.push([i, Math.sin(i)]); 
var d2 = [[0, 3], [4, 8], [8, 5], [9, 13]]; 

    $.plot($("#placeholder"), [d1, d2]); 

例によれば、ここでのチャートを描画するための私のコードは次のとおりです。

var myData1 = []; 
    for (var i in sampleData) { 
     myData.push(sampleData[i].Period, sampleData[i].Size); 
    } 
var myData2 = []; 
    for (var i in sampleData) { 
     myData.push(sampleData[i].Period, sampleData[i].Age); 
    }    
$.plot($("#placeholder"), [myData1, myData2 ]);   

しかし、私のチャートは、任意の行を持ってdoesnotこのコードで! !!

誰かが私の間違いをどこから指摘できますか?

答えて

2

代わりの

myData.push(sampleData[i].Period, sampleData[i].Size); 

私はあなたがこれは(内側の配列は、xが、y座標)配列の配列を作成します

myData.push([sampleData[i].Period, sampleData[i].Size]); 

をしたいと思います。

+0

thxです、それは問題でした。 – wingman55

+0

私は '' 1981''がxaxisの値として働いていることに驚いています...通常は明示的に数値にする必要がありますか? – Ryley

0

それはあなたのループのようになります。各ループ内

var myData1 = []; 
    for (var i in sampleData) { 
    myData.push(sampleData[i].Period, sampleData[i].Size); 
} 
var myData2 = []; 
    for (var i in sampleData) { 
    myData.push(sampleData[i].Period, sampleData[i].Age); 
} 

$.plot($("#placeholder"), [myData1, myData2 ]);  

、あなたはmyData配列にデータをプッシュしますが、myData1myData2を定義し、それぞれmyData1.pushmyData2.pushにループの内部を変更します。

+0

入力エラーです。私はまだ私の問題を持っています:) – wingman55

+0

データポイントがありますか?私はあなたの質問を再読し、あなたには行がないように聞こえました。また、あなたのループでは、 'myData.push'と書いてください。あなたが' myData1'と 'myData2'だけを定義したとき、あなたのコードやあなたの投稿にこれがありますか? – tlehman

+0

これは私のコード – wingman55