Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Type mismatch for number in Google Chart API

I have an array and the second column with values like this 2050.878456 and inside my javascript function to create a Area Chart I made the following

function drawVisualization() {
    var data = null;
    data = new google.visualization.DataTable();
    data.addColumn('string', 'Date');
    data.addColumn('number', 'Value');
    data.addRows(myArrayCreated);
    // Create and draw the visualization.
    var ac = new google.visualization.AreaChart(document
            .getElementById('visualization_chart'));
    ac.draw(data, {
        title : 'Results',
        isStacked : true,
        width : 700,
        height : 400,
        vAxis : {title : "kW"},
        hAxis : {title : "Day"}
    });

}

however I get this error Type mismatch. Value 2050.878456 does not match type number in column index 1 however it cannot be a string type as well, why do I get this error and how to fix it?

like image 667
user3362533 Avatar asked Jun 23 '14 12:06

user3362533


2 Answers

Try passing the Value as string and then later do a parseFloat. Something like this:

data.addColumn('string', 'Value');

for (var i=0;i<myArrayCreated.length;i++){
    myVal = parseFloat($.trim(myArrayCreated[i][1])); 
    data.addRow([i, {v: myVal, f: myval.toFixed(6)}]); 
}
like image 117
Fr0zenFyr Avatar answered Nov 02 '22 02:11

Fr0zenFyr


I spotted the same issue.

not working:

data.addRow([v, obd[v].engine_rpm]);

working:

data.addRow([v, Number(obd[v].engine_rpm)]);

wtf

like image 33
Martin Pfeffer Avatar answered Nov 02 '22 04:11

Martin Pfeffer