Google Chart错误:数据列不能是字符串类型

时间:2017-10-02 09:23:41

标签: javascript google-visualization

我使用此代码生成图表。我要在一个函数中将数据推送到数组中。然后我将它传递给绘制函数。但是当我这样做时,我得到了这个错误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);
}

1 个答案:

答案 0 :(得分:0)

ComboChart的data format仅允许第一列中的字符串值(x轴)
除非是特殊的role,例如工具提示或注释

所以这必须意味着输入到数组的数据包含字符串值,
在第一栏之后

没有数据样本,很难说肯定 但是,对于任何列应该是数字,
使用parseFloatparseInt,具体取决于数据中的数字类型

如果所有列都是数字,则 加载时尝试类似以下代码段的内容......

var chartData = [];

chartData.push(['A', 'B', 'C', 'D']);

chartData.push([
    parseFloat(X),
    parseFloat(Y),
    parseFloat(P),
    parseFloat(Q)
]);