2016-01-14 2 views
0

Я использую диаграммы Google для отображения данных на веб-страницах. Я использую CSV в качестве входных данных, а затем данные обрабатываются для использования google chart api.Google Charts Data View задает столбцы динамически

Я хочу показать значение столбца в верхней части диаграммы Bar/Column. Я понял, что если вы создаете представление данных и делаете view.setColumns и указываете аннотацию роли, тогда число становится видимым в верхней части диаграммы, в противном случае вам нужно навести курсор на диаграмме, чтобы увидеть точное значение.

Моя проблема заключается в том, что я не могу динамически устанавливать столбцы и роли в представление. Поскольку входной сигнал csv, я никогда не буду уверен в столбцах.

Главное намерение состоит в том, чтобы показать номера на барах, если есть какая-либо другая альтернатива, с помощью которой это можно сделать, тогда это также будет оценено. Cheers

var arrayData = csvAttr.toArrays(csvString, { 
       onParseValue : csvAttr.hooks.castToScalar 
      }); 

var data = new google.visualization.arrayToDataTable(arrayData); 
view = new google.visualization.DataView(data); 

      view.setColumns([0, 1, 
           { calc: "stringify", 
           sourceColumn: 1, 
           type: "string", 
           role: "annotation" }, 
           2, 
           { calc: "stringify", 
            sourceColumn: 2, 
            type: "string", 
            role: "annotation" }, 
           3, 
           { calc: "stringify", 
            sourceColumn: 3, 
            type: "string", 
            role: "annotation" } 

           ]); 
+0

помогите мне понять, почему вы не можете динамически «setColumns». это потому, что вы не знаете, сколько столбцов существует в файле? все графики всегда работают? кажется, что первый или два столбца должны быть ярлыками строк, а остальные значения строк столбцов. любая структура набора в CSV-файлы? – WhiteHat

+0

@WhiteHat, не волнуйтесь. Я мог бы использовать jquery csv для поиска столбцов и т. Д. И мог динамически устанавливать данные. Это был конец дня для меня, возможно, я был измучен, разрешив много чего другого. Я решил это. Спасибо, что посмотрели. –

+0

ура! был там... – WhiteHat

ответ

0

Простой способ установки столбцов динамически.

var totalColumns = 3 
var view = new google.visualization.DataView(dataTable); 
var columns = []; 
for (var i = 0; i <= totalColumns ; i++) { 
    if (i > 0) { 
     columns.push(i); 
     columns.push({ 
      calc: "stringify", 
      sourceColumn: 1, 
      type: "string", 
      role: "annotation" 
     }); 

    } else { 
     columns.push(i); 
    } 
} 

view.setColumns(columns);