我使用此代码生成图表。我必须将数据推入函数中的数组。然后,我将其传递给draw函数。但是当我这样做时,我得到了这个错误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);
}

最佳答案

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

因此,这必须表示要馈入数组的数据包含字符串值,
第一列之后

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

如果所有列均应为数字,
加载时尝试以下代码片段...

var chartData = [];

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

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

关于javascript - Google图表错误:数据列不能为字符串类型,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46522794/

10-09 23:31
查看更多