Javascript 意外文本“;“南”;出现在图表的y轴附近

Javascript 意外文本“;“南”;出现在图表的y轴附近,javascript,charts,chart.js,Javascript,Charts,Chart.js,当图表的数据集(资本和费用)都隐藏在使用Chartjs()插件创建的图表中时,图表的Y轴附近会出现意外的文本“NaN”。此处使用的图表类型为水平条形图 还附上一个屏幕截图,显示其中一个数据集隐藏时(类型1)的外观,类型2显示两个数据集都隐藏时的图表 链接到fiddle通过不允许用户同时隐藏所有数据集,即始终至少隐藏一个活动数据集,我成功地解决了上述问题 Fiddle link below 更新: 这个修复在chart.js 2.5版(或更低版本)中有效,在2.6版中,他们说默认情况下是修复的

当图表的数据集(资本和费用)都隐藏在使用Chartjs()插件创建的图表中时,图表的Y轴附近会出现意外的文本“NaN”。此处使用的图表类型为水平条形图

还附上一个屏幕截图,显示其中一个数据集隐藏时(类型1)的外观,类型2显示两个数据集都隐藏时的图表


链接到fiddle

通过不允许用户同时隐藏所有数据集,即始终至少隐藏一个活动数据集,我成功地解决了上述问题

Fiddle link below 

更新: 这个修复在chart.js 2.5版(或更低版本)中有效,在2.6版中,他们说默认情况下是修复的

旧答案:

您好,请改为:(注意我在xAxis上的回拨)

var ctx=document.getElementById(“myChart”);
var myChart=新图表(ctx{
键入:“水平线”,
数据:{
标签:[“红色”、“蓝色”、“黄色”、“绿色”、“紫色”、“橙色”],
数据集:[{
标签:“资本”,
数据:[12,19,3,5,2,3],
背景颜色:[
"rgba(255,99,132,0.2)",,
“rgba(54162235,0.2)”,
"rgba(255,206,86,0.2)",,
“rgba(751921920.2)”,
“rgba(153102255,0.2)”,
‘rgba(255、159、64、0.2)’
],
边框颜色:[
"rgba(255,99132,1)",,
“rgba(54162235,1)”,
"rgba(255,206,86,1)",,
"rgba(751921921)",,
"rgba(153102255,1)",,
‘rgba(255、159、64、1)’
],
边框宽度:1
}, {
标签:“费用”,
数据:[4,8,6,14,12,6],
背景颜色:[
"rgba(255,99,132,0.2)",,
“rgba(54162235,0.2)”,
"rgba(255,206,86,0.2)",,
“rgba(751921920.2)”,
“rgba(153102255,0.2)”,
‘rgba(255、159、64、0.2)’
],
边框颜色:[
"rgba(255,99132,1)",,
“rgba(54162235,1)”,
"rgba(255,206,86,1)",,
"rgba(751921921)",,
"rgba(153102255,1)",,
‘rgba(255、159、64、1)’
],
边框宽度:1
}]
},
选项:{
比例:{
xAxes:[{
对,,
滴答声:{
//这将解决您与NaN之间的问题
回调:函数(标签、索引、标签){
返回标签?标签:“”;
}
}
}],
雅克斯:[{
滴答声:{
贝吉纳泽罗:是的
}
}]
}
}
});


NaN
的意思不是一个数字,它看起来像是你在对一个字符串进行一些数学运算,从而引发了这个错误。解决方法是在进行数学运算之前将
字符串
转换为
数字
。你能分享你的代码吗?无法用给出的信息回答。注意,如果你已经将
字符串
转换为
数字
函数,如
parseInt()
,其中参数以字符串开头将返回
NaN
(即
parseInt(“1asdf”);//返回1
parseInt(“asdf1”);//返回NaN
)您需要提供JSFIDLE或codepen,或者至少提供完整的chart.js配置(包含数据),以便任何人都能帮助您。对于错误的求助方式,我深表歉意。请在下面找到一个JSFIDLE链接:在这个关于禁用两个数据集(资本和费用)的FIDLE中,“NaN”文本显示在左上角。