Javascript 谷歌图表饼图不完整
我正在使用谷歌图表API显示一个带有我的性别重新划分的饼图,但我有一个小问题,我的饼图不完整,如下图所示。 我使用这个JSON数组生成它:Javascript 谷歌图表饼图不完整,javascript,ajax,google-visualization,Javascript,Ajax,Google Visualization,我正在使用谷歌图表API显示一个带有我的性别重新划分的饼图,但我有一个小问题,我的饼图不完整,如下图所示。 我使用这个JSON数组生成它: {"cols":[{"id":"","label":"Topping","pattern":"","type":"string"},{"id":"","label":"Slices","pattern":"","type":"number"}],"rows":[{"c":[{"v":"Homme","f":null},{"v":"2","f":null}]
{"cols":[{"id":"","label":"Topping","pattern":"","type":"string"},{"id":"","label":"Slices","pattern":"","type":"number"}],"rows":[{"c":[{"v":"Homme","f":null},{"v":"2","f":null}]},{"c":[{"v":"Femme","f":null},{"v":"1","f":null}]}]}
{"cols":[{"id":"","label":"Topping","pattern":"","type":"string"},{"id":"","label":"Slices","pattern":"","type":"number"}],"rows":[{"c":[{"v":"Homme","f":null},{"v":2,"f":null}]},{"c":[{"v":"Femme","f":null},{"v":1,"f":null}]}]}
这是我的Javascript代码
function drawSexChart() {
var jsonData = $.ajax({
url: "http://localhost/studentlink/web/js/ajax.php?sexChart",
dataType: "json",
async: false
}).responseText;
var data = new google.visualization.DataTable(jsonData);
console.log(jsonData);
var chart = new google.visualization.PieChart(document.getElementById('chartUsersBySex'));
chart.draw(data, null);
}
我不知道为什么我的馅饼没有做好
如果有人能帮我
先谢谢你
托马斯最后,我找到了我的馅饼不完整的原因,我发布了我的解决方案,以帮助将来有同样问题的人 实际上,为了生成JSON字符串,我在包含图表所有信息的PHP对象中使用了
JSON\u encode
PHP函数
但实际上,我是这样使用这个函数的:
return json_encode($this);
return json_encode($this,JSON_NUMERIC_CHECK);
结果
{"cols":[{"id":"","label":"Topping","pattern":"","type":"string"},{"id":"","label":"Slices","pattern":"","type":"number"}],"rows":[{"c":[{"v":"Homme","f":null},{"v":"2","f":null}]},{"c":[{"v":"Femme","f":null},{"v":"1","f":null}]}]}
{"cols":[{"id":"","label":"Topping","pattern":"","type":"string"},{"id":"","label":"Slices","pattern":"","type":"number"}],"rows":[{"c":[{"v":"Homme","f":null},{"v":3,"f":null}]},{"c":[{"v":"Femme","f":null},{"v":1,"f":null}]}]}
在这个结果中,我们可以看到表示我的值的数字介于“
之间
但是现在,如果我像这样生成JSON字符串:
return json_encode($this);
return json_encode($this,JSON_NUMERIC_CHECK);
结果
{"cols":[{"id":"","label":"Topping","pattern":"","type":"string"},{"id":"","label":"Slices","pattern":"","type":"number"}],"rows":[{"c":[{"v":"Homme","f":null},{"v":"2","f":null}]},{"c":[{"v":"Femme","f":null},{"v":"1","f":null}]}]}
{"cols":[{"id":"","label":"Topping","pattern":"","type":"string"},{"id":"","label":"Slices","pattern":"","type":"number"}],"rows":[{"c":[{"v":"Homme","f":null},{"v":3,"f":null}]},{"c":[{"v":"Femme","f":null},{"v":1,"f":null}]}]}
我的号码周围的
“
字符消失了,我的馅饼全满了 最后,我终于找到了我的馅饼不完整的原因,我发布了我的解决方案,以帮助将来有同样问题的人
实际上,为了生成JSON字符串,我在包含图表所有信息的PHP对象中使用了JSON\u encode
PHP函数
但实际上,我是这样使用这个函数的:
return json_encode($this);
return json_encode($this,JSON_NUMERIC_CHECK);
结果
{"cols":[{"id":"","label":"Topping","pattern":"","type":"string"},{"id":"","label":"Slices","pattern":"","type":"number"}],"rows":[{"c":[{"v":"Homme","f":null},{"v":"2","f":null}]},{"c":[{"v":"Femme","f":null},{"v":"1","f":null}]}]}
{"cols":[{"id":"","label":"Topping","pattern":"","type":"string"},{"id":"","label":"Slices","pattern":"","type":"number"}],"rows":[{"c":[{"v":"Homme","f":null},{"v":3,"f":null}]},{"c":[{"v":"Femme","f":null},{"v":1,"f":null}]}]}
在这个结果中,我们可以看到表示我的值的数字介于“
之间
但是现在,如果我像这样生成JSON字符串:
return json_encode($this);
return json_encode($this,JSON_NUMERIC_CHECK);
结果
{"cols":[{"id":"","label":"Topping","pattern":"","type":"string"},{"id":"","label":"Slices","pattern":"","type":"number"}],"rows":[{"c":[{"v":"Homme","f":null},{"v":"2","f":null}]},{"c":[{"v":"Femme","f":null},{"v":"1","f":null}]}]}
{"cols":[{"id":"","label":"Topping","pattern":"","type":"string"},{"id":"","label":"Slices","pattern":"","type":"number"}],"rows":[{"c":[{"v":"Homme","f":null},{"v":3,"f":null}]},{"c":[{"v":"Femme","f":null},{"v":1,"f":null}]}]}
我的号码周围的
“
字符消失了,我的馅饼全满了 这是因为您的值是字符串而不是整数
所以你需要做的是
1) 更改从服务器返回的数据,以便行数据反映这一点
"rows":[{"c":[{"v":"Homme","f":null},{"v":2,"f":null}]},{"c":[{"v":"Femme","f":null},{"v":1,"f":null}]
2) 在将数据与图表应用程序一起使用之前,请先更改数据。例如:
var rowData = jsonData.rows;
for (var i = 0, l = rowData.length; i < l; i++) {
rowData[i].c[1].v = +rowData[i].c[1].v;
}
var rowData=jsonData.rows;
对于(变量i=0,l=rowData.length;i 因为你的值是字符串而不是整数
所以你需要做的是
1) 更改从服务器返回的数据,以便行数据反映这一点
"rows":[{"c":[{"v":"Homme","f":null},{"v":2,"f":null}]},{"c":[{"v":"Femme","f":null},{"v":1,"f":null}]
2) 在将数据与图表应用程序一起使用之前,请先更改数据。例如:
var rowData = jsonData.rows;
for (var i = 0, l = rowData.length; i < l; i++) {
rowData[i].c[1].v = +rowData[i].c[1].v;
}
var rowData=jsonData.rows;
对于(变量i=0,l=rowData.length;i
从值中去掉引号(“”)
从值中去掉引号(“”)