Javascript Highcharts返回错误14
在花了几个小时试图弄清楚如何将JSON字符串处理成javascript数组之后,我试图用highcharts绘制一个饼图。 这就是我所拥有的Javascript Highcharts返回错误14,javascript,highcharts,Javascript,Highcharts,在花了几个小时试图弄清楚如何将JSON字符串处理成javascript数组之后,我试图用highcharts绘制一个饼图。 这就是我所拥有的 gateway_useage: function(usage_data) { var options = { chart: { renderTo:'gateway-usage', plotBackgroundColor: null,
gateway_useage: function(usage_data) {
var options = {
chart: {
renderTo:'gateway-usage',
plotBackgroundColor: null,
plotBorderWidth: null,
plotShadow: false
},
title: { text: 'Gateway Usage' },
tooltip: {
pointFormat: '{series.name}: <b>{point.percentage}%</b>',
percentageDecimals: 1
},
plotOptions: {
pie: {
allowPointSelect: true,
cursor: 'pointer',
dataLabels: {
enabled: true,
color: '#000000',
connectorColor: '#000000',
formatter: function() {
return '<b>'+ this.point.name +'</b>: '+ this.percentage +' %';
}
},
showInLegend: true
}
},
series: [{
type: 'pie',
name: 'Usage',
}]
}
var serie1 = usage_data.map( function(e) {
return [e.gateway, e.val];
});
options.series.push({data: serie1});
var chart = new Highcharts.Chart(options);
}
网关使用:功能(使用数据){
变量选项={
图表:{
renderTo:“网关使用”,
plotBackgroundColor:null,
plotBorderWidth:null,
plotShadow:false
},
标题:{text:'Gateway Usage'},
工具提示:{
pointFormat:“{series.name}:{point.percentage}%”,
百分比小数:1
},
打印选项:{
馅饼:{
allowPointSelect:true,
光标:“指针”,
数据标签:{
启用:对,
颜色:'#000000',
连接器颜色:'#000000',
格式化程序:函数(){
返回“+this.point.name+”:“+this.percentage+”%”;
}
},
showInLegend:对
}
},
系列:[{
键入“pie”,
名称:'用法',
}]
}
var serie1=使用情况数据映射(函数(e){
返回[e.gateway,e.val];
});
options.series.push({data:serie1});
var图表=新的Highcharts.图表(选项);
}
加载页面并检查错误控制台后,显示“未捕获的Highcharts错误#14:www.Highcharts.com/errors/14”。我做错了什么,请帮帮我清楚地说
发送到series.data的字符串值,应为数字
如果将字符串作为数据点传递,则会发生his
如果serie.data
的格式为
[y1,y2,y2]
或
或
在上述任何形式中,y1
、y2
和y3
中存储的数据类型应为数字。您只需在javascript中使用or即可实现这一点
var serie1 = usage_data.map( function(e) {
return [e.gateway, parseFloat(e.val)];
});
或者在您使用的服务器技术中执行此操作在(PHP4>=4.2.0,PHP5)中可以使用
$float_value_of_var = floatval("123.456");
你查过它给你的网址了吗?很可能您的序列数据不是正确的数据类型(应该是数字)。是的,我检查了url,但这段代码应该解析json var serie1=usage_data.map(函数(e){return[e.gateway,e.val];});options.series.push({data:serie1});所以highcharts可以理解它是的,我看到它返回了highcharts期望的正确数据结构,但是数据本身,也就是e.val,可能不是一个数字(可能是一个字符串),我猜。我会设置一个断点并检查值,或者只是在map函数中执行一个parseFloat(e.val),然后看看会发生什么。这个答案只为我节省了2个多小时的调试时间。
var serie1 = usage_data.map( function(e) {
return [e.gateway, parseFloat(e.val)];
});
$float_value_of_var = floatval("123.456");