2012-05-09 4 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 ]);   

Но с этим кодом моего графика оленьей кожи иметь любую линию! !!

Может кто-нибудь указать мне, где моя вина?

ответ

2

Вместо

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

Я думаю, что вы хотите

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 массив, но вы определяете myData1 и myData2, изменить внутреннюю петлю на myData1.push и myData2.push соответственно ,

+0

Это была ошибка ввода. У меня все еще есть моя проблема :) – wingman55

+0

Хорошо, вы видите точки данных? Я перечитываю ваш вопрос, и это звучит так, будто у вас нет линии. Кроме того, в ваших циклах вы пишете 'myData.push', когда вы только определили' myData1' и 'myData2', это в вашем коде или только в вашем сообщении? – tlehman

+0

Это мой код – wingman55