2016-04-24 94 views
0

我試圖創建複合圖表與給定的數據,即,[日期,值1,值],但我不能處理這樣的輸入:處理在谷歌圖表空數據

// [["Day","Dose","INR"],["17/04",1.5,null]] 
// [["Day","Dose","INR"]] 
// [["Day","Dose","INR"],["17/04",1.5,null],["18/04",2.5,null]] 

即,當有一組具有特定值的數據全部由空值組成時,我無法在圖上繪製它。這樣的輸入是好的:

// [["Day","Dose","INR"],["17/04",1.5,null],["18/04",2.5,0.9]] 
// [["Day","Dose","INR"],["17/04",1.5,null],["18/04",2.5,0.9],["19/04",null,1.4]] 

這裏是我的JavaScript代碼繪製圖。數據來自Ruby模型。

$(function() { 

    google.charts.load('current', {'packages':['corechart']}); 
    google.charts.setOnLoadCallback(drawVisualization); 

    function drawVisualization() { 
     // Some raw data (not necessarily accurate) 
     var data = google.visualization.arrayToDataTable(<%= DrugInr.generate_array(@patient) %>); 

     var options = { 
      vAxes: { 1: {title: 'Dose', format: '#.#', maxValue: 20}, 
      0: {title: 'INR',format: '#.#', minValue: -1, baselineColor:"#CCCCCC"} }, 
      hAxis: {title: 'Day'}, 
      seriesType: 'bars', 
      bar: { 
       groupWidth: 2 
      }, 
      series: { 
       0:{ type: "bars", targetAxisIndex: 1 }, 
       1:{ type: 'line', targetAxisIndex: 0} 

      } 
    }; 



var chart = new google.visualization.ComboChart(document.getElementById('chart_div')); 
chart.draw(data, options); 

} 
}); 

如何處理這些半空值?

回答

1

我解決了這個創造我的數據表是這樣的:

var data = new google.visualization.DataTable(); 
data.addColumn('string', 'Date'); 
data.addColumn('number', 'INR'); 
data.addColumn('number', 'Dosage'); 
data.addRows(<%= DrugInr.generate_array(@patient) %>); 

var options = { 
    vAxes: { 1: {title: 'Dose', format: '#.#', maxValue: 20}, 
    0: {title: 'INR',format: '#.#', minValue: -1, baselineColor:"#CCCCCC"} }, 
    hAxis: {title: 'Day'}, 
    seriesType: 'bars', 
    bar: { 
     groupWidth: 5 
    }, 
    series: { 
     0:{ type: "bars", targetAxisIndex: 1 }, 
     1:{ type: 'line', targetAxisIndex: 0} 

    } 
}; 
1

我會建議interpolateNulls選項。有關詳細信息,請參閱ComboChart Configuration Options文檔。

var options = { 
    interpolateNulls: true 
}; 

這個選項只是告訴圖表猜測你的值是否爲零,而不是留下空隙。無論如何都適用於大多數情況。