Error using Google's graphics library

0

I'm doing a simple project, where I'm using the Google library to work with graphics, but I'm having a problem while "plotting" the results, the following error is displayed:

You call the draw () method with the wrong type of data rather than a DataTable or DataView

Code snippet of the code I'm using:

/* variável constante */
var candidatoA = 'A';
var candidatoC = 'C';

/* variável auxiliar */
var votosCandidatoA = 0;
var votosCandidatoC = 0;

/* requisição para o biblioteca do google */
google.load("visualization", "1", { packages: ["corechart"] });
google.charts.load('current', { 'packages': ['corechart'] });
google.setOnLoadCallback(processarPopulacao);
google.setOnLoadCallback(processarAmostra);
google.charts.setOnLoadCallback(graficoProporcaoVotos);

/* função para realizar o processamento dos dados de populacao */
function processarPopulacao() {
    var consultaString = encodeURIComponent('SELECT A, B, C');
    var magica = '/gviz/tq?gid=0&headers=1&tq=';
    var url = 'https://docs.google.com/spreadsheets/d/1unuhxkhDg2qTQnhTcYmC2GkEIPM18ai8PGtSsI44Bd8';
    var query = new google.visualization.Query(url + magica + consultaString);
    query.send(consumirDadosPopulacao);
}

/* função para realizar o processamento dos dados de amostra */
function processarAmostra() {
    var consultaString = encodeURIComponent('SELECT A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, AA, AB, AC, AD, AE, AG');
    var magica = '/gviz/tq?gid=0&headers=1&tq=';
    var url = 'https://docs.google.com/spreadsheets/d/1UUPbVQ6p8gOFRMznBhsxJXEUW-Axx8C2LnLKWutcL6Y';
    var query = new google.visualization.Query(url + magica + consultaString);
    query.send(consumirDadosAmostra);
}

/* função para consumir os dados de populacao */
function consumirDadosPopulacao(resposta) {
    if (resposta.isError()) {
        alert('Erro: ' + resposta.getMessage() + ' ' + resposta.getDetailedMessage());
        return;
    }
    var dados = resposta.getDataTable();
    dados.Nf.filter(function(valores) {
        proporcaoDeVotos(valores.c[2].v);
    });
    console.log("Total de votos para o candidato A: " + votosCandidatoA);
    console.log("Total de votos para o candidato C: " + votosCandidatoC);
}

/* função para consumir os dados de populacao */
function consumirDadosAmostra(resposta) {}

/* função para calcular a quantidade de votos para cada candidato */
function proporcaoDeVotos(voto) {
    if (voto == candidatoA) {
        votosCandidatoA++;
    } else {
        votosCandidatoC++;
    }
}

/* função para desenhar o gráfico de proporção de votos */
function graficoProporcaoVotos() {
    var data = google.visualization.arrayToDataTable([
        ['Candidato', 'Votos'],
        ['candidatoA', votosCandidatoA],
        ['candidatoC', votosCandidatoC]
    ]);

    var options = {
        backgroundColor: 'transparent',
    };
    var chart = new google.visualization.PieChart(document.getElementById('piechart'));
    chart.draw(data, options);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"type="text/javascript"></script>
<script src="https://www.google.com/jsapi"type="text/javascript"></script>
<script src="https://www.gstatic.com/charts/loader.js"type="text/javascript"></script>
<div id="piechart"></div>

The rest of the code performs a request on the data using google api to access the data in spreadsheets. It is important to realize that the data is presented correctly, ie there must be some problem when drawing the graph.

    
asked by anonymous 23.10.2017 / 02:57

0 answers