Строка задана с размером, отличным от 3 Google Charts

Я использую Google Charts в системе под названием Klipfolio. Возился с ним несколько дней. Интересно, пробовал ли кто-нибудь еще подобное. Эти проблемы не являются специфическими для Kipfolio, но я подумал, что немного предыстории может иметь большое значение.

Это код:

var _component = this;
var _dataModel = this.dataModel;
var thearray = $.map(_dataModel, function(value, index) {
 return [value];
});
var thearrays = ('['+thearray.toString()+']');
var datadone = (JSON.parse(thearrays));
console.table(datadone);
google.setOnLoadCallback(drawChart);

function drawChart() {

var data = new google.visualization.DataTable();
data.addColumn('string', 'From');
data.addColumn('string', 'To');
data.addColumn('number', 'Weight');

data.addRows([datadone]);

    // Sets chart options.
    var options = {
    sankey: {
        iterations: 700,
        node: {
            label: {
                fontName: 'Arial',
                fontSize: 12,
                color: 'rgb(74,74,74)',
                bold: true,
                italic: false
            },
            interactivity: true, // Allows you to select nodes.
            labelPadding: 3, // Horizontal distance between the label and the node.
            nodePadding: 20, // Vertical distance between nodes.
            width: 10, // Thickness of the node.
            colors: [
                'rgb(82,144,233)', // Custom color palette for sankey nodes.
            'rgb(113,179,124)', // Nodes will cycle through this palette
            'rgb(206,226,55)', // giving each node its own color.
            'rgb(239,209,64)',
                'rgb(236,147,47)',
                'rgb(225,77,87)',
                'rgb(150,89,148)',
                'rgb(157,121,82)',
                'rgb(154,146,137)']
        }
    }


};

    // Instantiates and draws our chart, passing in some options.
    var chart = new google.visualization.Sankey(document.getElementById('sankey_basic'));
    chart.draw(data, options);
  }

Переменная _dataModel выводится в console.table следующим образом: http://imgur.com/hQD9V2W.

Переменная thearray выводится в console.table следующим образом: http://imgur.com/TFwkkfQ

При отображении графика выдает ошибку:

Неперехваченная ошибка: указана строка с размером, отличным от 3 (количество столбцов в таблице)

Есть ли какие-либо другие шаги, которые я должен предпринять, чтобы устранить эту ошибку? Я новичок в использовании javascript и объектов/массивов. Я вижу, что переменная thearray содержит 4 столбца, но в этом ли проблема?


person John McCoy    schedule 14.07.2015    source источник
comment
Ваши скриншоты на самом деле не показывают формирование вашего JSON, который вы пытаетесь добавить в свою диаграмму. Пожалуйста, приготовьте что-нибудь получше для обзора, желательно, чтобы мы могли увидеть его в строковом формате. Абсолютно лучший в скрипке. Вы можете прочитать JSON-формат Google API здесь   -  person Henrik Aronsson    schedule 14.07.2015


Ответы (1)


Похоже, моя проблема заключалась в добавлении скобок в функцию data.addRows. Итак, вместо:

data.addRows([datadone]);

который не сгенерировался, я заменил его на:

data.addRows(datadone);

Спасибо, Хенрик, за то, что указал мне посмотреть на источник данных. Как только я проверил формирование, я смог определить проблему и исправить ее. Диаграмма теперь выглядит великолепно!

person John McCoy    schedule 15.07.2015
comment
Рад, что ты понял это. Для получения дополнительной информации об этом и о том, как форматировать data.addRows(X) // data.addRows([X]) // data.addRow(x) и т. д., мы обсуждали это только на прошлой неделе. stackoverflow.com/questions/31264149/ - person Henrik Aronsson; 15.07.2015