如果获得了highcharts 3数据插件来读取表中的值。这不是因为英语的问题。用于小数分隔符。在荷兰语中,表使用a作为小数分隔符。图表不显示因为数据插件无法看到5,5与5.5相同。
这是我的javascript代码:
<!-- language: lang-js -->
$('#grafiek620').highcharts({
chart: {
type: 'bar'
},
credits: {
enabled: false
},
data: {
table: document.getElementById('datatable620')
},
title: {
text: jQuery('#datatable620').data('labeltitle')
},
xAxis: {
labels: {
rotation: 0
},
title: {
text: jQuery('#datatable620').data('labelx')
}
},
yAxis: [{
min: 0,
title: {
text: jQuery('#datatable620').data('labely')
},
labels: {
rotation: 0
}
}, {
opposite: true,
title: {
text: jQuery('#datatable620').data('labelz')
},
}],
legend: {
layout: "horizontal"
}
});
我添加了一个js小提琴:http://jsfiddle.net/knscs/
答案 0 :(得分:0)
您必须将这些逗号更改为有效期。 Javascript在数字格式的文化差异方面不是很好。一个简单的string.replace
应该这样做。
例如,用你的例子做一个非常便宜和hacky的方法是:
$("td").each(function() {
var str = $(this).text();
$(this).text(str.replace(',','.'));
});
哪些内容会更改,
代码中.
到td
的所有内容,但它不是很聪明,如果您的代码需要国际友好且遇到数据,您应该非常小心例如1,000.5
或者如果您的td
字符串包含逗号。
答案 1 :(得分:0)
好的,你有一个解决方案:
var ConvertStringToFloat = function( datas ) {
return datas.map(function(i, el) {
var str = $(el).text();
return parseFloat(str.replace(",", "."));
});
}
ConvertStringToFloat ( $("td", $('#datatable620') ) )
这里有一个float数组,现在你只需要用HighChart创建一个系列。
series: [{
data: ConvertStringToFloat ( $("td", $('#datatable620') ) )
}]
这是一个工作示例:http://jsfiddle.net/knscs/3/
要显示数字(以荷兰语方式),您可以在Highcharts
的选项中执行此操作:
Highcharts.setOptions({
lang: {
decimalPoint: ','
}
});
PS:你选择的功能名称......我没有真正考虑它,但ConvertStringToFloat
不是一个好选择;)
答案 2 :(得分:0)
您可以简单地编辑data.src.js模块以允许使用comas进行此操作。编辑源代码有什么用呢?您不需要在HTML中更改任何内容,您不必再次遍历所有数组项,只需找到该行(在data.src.js中):
floatVal = parseFloat(val);
并使用replace()
将,
替换为.
,如其他答案所示。