I have a problem accessing attributes in a json file to generate a line graph. The json is structured like this:
[{
"id" : "AustraliaNewZealand" ,
"year" : [1990,1992,1994,1993,1995,1996,1997,1998,1999,2000,2001,2002,2003,2004,2005,2006,2007,2008,2009,2010],
"values":[477790,485825,487296,488885,502585,511718,526594,538967,550556,563572,577171,579126,591635,599216,604267,608954,615853,623685,618961,614920]
},
{
"id":"CentralEurope",
"year":[1990,1992,1994,1993,1995,1996,1997,1998,1999,2000,2001,2002,2003,2004,2005,2006,2007,2008,2009,2010],
"values":[1548736,1334452,1313088,1283248,1314709,1360546,1343907,1285511,1237278,1251872,1244069,1233778,1284639,1297510,1317861,1359787,1396681,1361445,1278731,1343044]
},
{
"id":"EasternEurope",
"year":[1990,1992,1994,1993,1995,1996,1997,1998,1999,2000,2001,2002,2003,2004,2005,2006,2007,2008,2009,2010],
"values":[4418516,3530464,3287987,2925644,2775181,2672238,2540975,2495036,2513372,2515375,2540796,2544848,2598148,2637682,2622241,2709974,2714204,2740248,2565213,2680226]
},
{
"id":"NorthAmerica",
"year":[1990,1992,1994,1993,1995,1996,1997,1998,1999,2000,2001,2002,2003,2004,2005,2006,2007,2008,2009,2010],
"values":[6750754,6821412,6948829,7059001,7166869,7386971,7460485,7509719,7573562,7790060,7675762,7710685,7769154,7896824,7918461,7841686,7966277,7751508,7277713,7493948]
},
{
"id":"WesternEurope",
"year":[1990,1992,1994,1993,1995,1996,1997,1998,1999,2000,2001,2002,2003,2004,2005,2006,2007,2008,2009,2010],
"values":[4365949,4290345,4222425,4221029,4264725,4353056,4290057,4310736,4251628,4260565,4306230,4278128,4333237,4337031,4305560,4267515,4209481,4125479,3841580,3924831
]
}]
And what I'd like to do is to generate a line path for each id, with the values of x being the years and y being the values. Other than asking for the code I tried to develop (below), I'd like to ask if this is the optimal layout for the data, I usually worked with simple csv and tsv and am not that good at managing .json. I assembled this dataset myself so if there's a more reasonable way to organize it I'm all ears. But back to the code, what I tried to do is the following in the line generator:
var line = d3 .svg.line()
.interpolate("linear")
.x(function (d, i) { for (var i = 0; i >= dataset.length; i++) {
return dataset[(i)].year }})
.y(function (d, i) { for (var i = 0; i >= dataset.length; i++) {
return dataset[(i)].values; }});
and then in the path I tried the following:
var path = svg
.append("path")
.attr("class", "line")
.attr("d", line(dataset))
.attr("fill", "none")
.attr("stroke", "#E37222")
.attr("stroke-width", 0.5 + "px");
but in the console i get that there were problem parsing the coordinates of the path. Since I'm kinda new to the whole .json thing, I watched some tutorials and read some guides, but can't manage to solve this by myself. Any explaination on how to solve this would be really appreciated, thanks!