我认为这将是一个有趣的项目,看看我是否可以从 Google Analytics 获取数据并将其显示在自定义仪表板中,并希望能学到一两件事关于使用 json 和 javascript。
经过大量调试后,我现在设法使用他们的 php api 从 Google Analytics 服务器中提取数据,并将输出保存到服务器上的 data.json 中。
在 data.json 下方,根据 JSONLint.com 有效:
{
"0": {
"date": "20160113",
"pageviews": "46",
"sessions": "21"
},
"1": {
"date": "20160114",
"pageviews": "66",
"sessions": "18"
},
"2": {
"date": "20160112",
"pageviews": "50",
"sessions": "14"
},
"3": {
"date": "20160116",
"pageviews": "19",
"sessions": "14"
},
"4": {
"date": "20160117",
"pageviews": "23",
"sessions": "14"
},
"5": {
"date": "20160115",
"pageviews": "38",
"sessions": "11"
},
"6": {
"date": "20160118",
"pageviews": "35",
"sessions": "9"
},
"7": {
"date": "20160119",
"pageviews": "15",
"sessions": "7"
}
}
现在我尝试使用 data.json 中的数据并将其输入图表师的标签/系列以绘制图表。
var labelArray = [];
var seriesArray = [];
var labelOutput = [];
$.getJSON("data.json", function(json) {
//var jsonObj = JSON.parse(json);
for (var i in json){
labelArray.push(json[i].date);
};
for (var i in json){
seriesArray.push(json[i].sessions);
};
// var myData = {
// labels:
// }
// labelOutput = labelArray.join(',')
// seriesOutput = serieArray.join(',')
console.log(labelArray);
console.log(seriesArray);
// this will show the info it in firebug console
});
new Chartist.Line('.ct-chart', {
labels: [labelArray],
series: [[seriesArray]]
});
但是我目前不知道为什么这不起作用,X 轴和 Y 轴上的标签正确显示,但没有显示图表。
我尝试使用 .join 来查看是否有所不同,但使用 labelOutput 而不是 labelArray 也不会改变任何东西。
在控制台中,输入chartist的数组对我来说似乎没问题,如果我将它从控制台复制粘贴到脚本中,一切正常。
labelArray 和 seriesArray 的当前输出:
标签数组
Array [ "20160113", "20160114", "20160112", "20160116", "20160117", "20160115", "20160118", "20160119" ]
系列数组
Array [ "21", "18", "14", "14", "14", "11", "9", "7" ]
任何人都知道为什么chartist.js 确实设法沿轴添加正确的标签,但未能读取相同的数据并绘制图表?