我是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 ]);
但是使用这段代码我的图表没有任何一行!!!
有人能指出我的错吗?
答案 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
数组,但是您定义了myData1
和myData2
,将循环内部更改为myData1.push
并且分别为myData2.push
。