使用 JSON 数据创建 HighCharts 饼图
Create a HighCharts pie chart using JSON Data
我正在尝试使用从 cartoDB SQL
返回的 JSON 数据绘制饼图。
我正在使用 High Charts 网站上提供的示例,但图表未加载。下面是我的 javascript 代码。你能看出什么不对吗?
$(document).ready(function() {
var options = {
chart: {
renderTo: 'container',
type: 'pie'
},
series: [{}]
};
var jsonURL = 'https://1025.cartodb.com/api/v2/sql?&q=SELECT status FROM kenya_primary_schools';
$.getJSON(jsonURL, function(data) {
var obj = data.rows, hObj = [];
if(obj.length){
for(var i=0; i<obj.length; i++){
hObj.push([obj[i]['status']]);
}
console.log(hObj);
}
options.series[0].data = data;
var chart = new Highcharts.Chart(options);
});
});
您的代码中存在一些语法错误。您可以尝试这样更正,然后再试一次。
$(document).ready(function() {
var options = {
chart: {
renderTo: 'container',
type: 'pie'
},
series: [{}]
},
jsonURL = 'https://1025.cartodb.com/api/v2/sql?&q=SELECT status FROM kenya_primary_schools';
$.getJSON(jsonURL, function(data) {
var obj = data.rows,
hObj = [],
chart;
if (obj.length) for (var i=0; i<obj.length; i++) hObj.push([obj[i].status]);
options.series[0].data = data;
chart = new Highcharts.Chart(options);
});
});
在对你的代码进行一定程度的修改后,我得到了以下结果:
你应该做的重点
您需要从 Highcharts 文档中查看如何将数据对象从 Highcharts doc
提供给 series.data
由于 cartoDB
中有两个选项:PRIVATE 和 PUBLIC,您应该考虑如何将它们存储在 array/object 中以及如何从饼图。
提示:
options.series[0].data=数据;
hObj.push([obj[i]['status']]);
我正在尝试使用从 cartoDB SQL
返回的 JSON 数据绘制饼图。
我正在使用 High Charts 网站上提供的示例,但图表未加载。下面是我的 javascript 代码。你能看出什么不对吗?
$(document).ready(function() {
var options = {
chart: {
renderTo: 'container',
type: 'pie'
},
series: [{}]
};
var jsonURL = 'https://1025.cartodb.com/api/v2/sql?&q=SELECT status FROM kenya_primary_schools';
$.getJSON(jsonURL, function(data) {
var obj = data.rows, hObj = [];
if(obj.length){
for(var i=0; i<obj.length; i++){
hObj.push([obj[i]['status']]);
}
console.log(hObj);
}
options.series[0].data = data;
var chart = new Highcharts.Chart(options);
});
});
您的代码中存在一些语法错误。您可以尝试这样更正,然后再试一次。
$(document).ready(function() {
var options = {
chart: {
renderTo: 'container',
type: 'pie'
},
series: [{}]
},
jsonURL = 'https://1025.cartodb.com/api/v2/sql?&q=SELECT status FROM kenya_primary_schools';
$.getJSON(jsonURL, function(data) {
var obj = data.rows,
hObj = [],
chart;
if (obj.length) for (var i=0; i<obj.length; i++) hObj.push([obj[i].status]);
options.series[0].data = data;
chart = new Highcharts.Chart(options);
});
});
在对你的代码进行一定程度的修改后,我得到了以下结果:
你应该做的重点
您需要从 Highcharts 文档中查看如何将数据对象从 Highcharts doc
提供给 series.data由于 cartoDB
中有两个选项:PRIVATE 和 PUBLIC,您应该考虑如何将它们存储在 array/object 中以及如何从饼图。
提示:
options.series[0].data=数据;
hObj.push([obj[i]['status']]);