在javascript中绘制图表

时间:2012-05-09 22:18:35

标签: javascript flot

我是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 ]);         

但是使用这段代码我的图表没有任何一行!!!

有人能指出我的错吗?

2 个答案:

答案 0 :(得分:2)

而不是

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

我想你想要

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

这将创建一个数组数组(其中内部数组是x,y坐标)。

答案 1 :(得分: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.push并且分别为myData2.push