我使用此代码生成图表。我要在一个函数中将数据推送到数组中。然后我将它传递给绘制函数。但是当我这样做时,我得到了这个错误Data column(s) for axis #0 cannot be of type string
。
知道这是什么问题吗?
function setData(records) {
$("#result").show();
var chartData = [];
chartData.push(['A', 'B', 'C', 'D']);
// A SIMPLE FOR EACH LOOP STARTS
chartData.push([
X,Y,P,Q
]);
//FOR EACH ENDS
drawVisualization(chartData);
}
google.charts.load('current', { 'packages': ['corechart'] });
function drawVisualization(chartData) {
var data = google.visualization.arrayToDataTable([
chartData
]);
var options = {
title: 'Monthly Coffee Production by Country',
vAxis: { title: 'Measure' },
hAxis: { title: Row },
seriesType: 'bars',
series: { 5: { type: 'line' } }
};
var chart = new google.visualization.ComboChart(document.getElementById('chart_div'));
chart.draw(data, options);
}
答案 0 :(得分:0)
ComboChart的data format仅允许第一列中的字符串值(x轴)
除非是特殊的role,例如工具提示或注释
所以这必须意味着输入到数组的数据包含字符串值,
在第一栏之后
没有数据样本,很难说肯定
但是,对于任何列应该是数字,
使用parseFloat
或parseInt
,具体取决于数据中的数字类型
如果所有列都是数字,则 加载时尝试类似以下代码段的内容......
var chartData = [];
chartData.push(['A', 'B', 'C', 'D']);
chartData.push([
parseFloat(X),
parseFloat(Y),
parseFloat(P),
parseFloat(Q)
]);