2016-09-20 28 views
1

我正在用動態數據填充條形圖。 我想不通爲什麼我仍然得到數據類型錯誤。 這是我的函數:谷歌圖表給定軸上的所有系列必須具有相同的數據類型

function drawBasic(object,id,title) { 

var array = ['publisher','price','date']; 
var data = new google.visualization.DataTable(); 
for(var j = 0; j < array.length; j++){ 
    if(array[j] == 'publisher'){ 
     data.addColumn('string', array[j]); 
    } else if (array[j] == 'revenue'){ 
     data.addColumn('number', array[j]); 
    } else if(array[j] == 'date'){ 
     data.addColumn('date', 'X'); 
    } 
} 

$.each(object,function (key,val) { 
    var temp = []; 
    var outterArray = []; 
    var day = new Date(key); 
    for(var y = 0; y < val.length; y++){ 

     for(var x = 0; x < array.length; x++){ 
      if(array[x] =='publisher'){ 
        temp.push(val[y][array[x]]); 
      } else if(array[x] != 'date' && array[x] !='publisher'){ 
        temp.push(parseObjToNum(val[y][array[x]])); 
      } 
     } 
     temp.push(day); 
     outterArray.push(temp); 
     temp = []; 
    } 
    data.addRows(outterArray); 
}); 

var options = { 
    title: title, 
    hAxis: { 
     "format": "y-MM-d" 
    } 
}; 
var chart = new google.visualization.ColumnChart(document.getElementById(id)); 
var formatter = new google.visualization.NumberFormat({fractionDigits: true}); 
formatter.format(data, 1, 2, 3); 
chart.draw(data, options); 
} 

柱的結構爲:發行字符串類型,價格型和數量X形日期。

行單個數據例如:

[ 'JOSH大',12日,星期二2016年9月20日3點00分00秒GMT + 0300(IDT)]

的數據被有序根據專欄。

我打算爲每個日期提供一組發佈商及其價格。 我不介意在不同的圖表中表示它,但我不認爲這是問題所在。

任何建議將不勝感激。

回答

1

每個圖表類型都有特定的Data Format

對於柱狀圖,和大多數人,一個'date'列只是作爲第一列
它不可能是一個一系列列有效的 - 這隻能是數字

顯示圖表中的日期,建議使用Column Role
使用任一'annotation''tooltip'

看到下面的工作片段...

google.charts.load('current', { 
 
    callback: function() { 
 
    var container = document.getElementById('chart_div'); 
 
    var chart = new google.visualization.BarChart(container); 
 

 
    var dataTable = new google.visualization.DataTable(); 
 
    dataTable.addColumn({type: 'string', label: 'Publisher'}); 
 
    dataTable.addColumn({type: 'number', label: 'Price'}); 
 
    dataTable.addColumn({type: 'string', role: 'annotation'}); 
 

 
    dataTable.addRows([ 
 
     ['josh the great', 12, 'Tue Sep 20 2016 03:00:00 GMT+0300 (IDT)'], 
 
    ]); 
 

 
    chart.draw(dataTable); 
 
    }, 
 
    packages: ['corechart'] 
 
});
<script src="https://www.gstatic.com/charts/loader.js"></script> 
 
<div id="chart_div"></div>

+0

是的!註釋是失蹤的部分!謝謝! – ohadsas

相關問題