I am struggling how I can combine line chart and column chart. I tried to follow the example on playground but I failed. I am pretty sure that my ChartWrapper constructor is wrong. (note) for testing purposes I am just going to use same data for line chart and column chart. This is what I have so far (made slight changes but a lot of this is copy paste from the playground)
google.load('visualization', '1', { 'packages': ['controls'] });
google.setOnLoadCallback(drawChart);
function drawChart() {
$('div#test_chart').html("<div class='spinner'><img src='/content/images/loadingicon.gif' alt='loading...' /></div>");
$.post('/metrics/UpChartData', {},
function (data) {
var dashboard = new google.visualization.Dashboard(document.getElementById('test_chart'));
var controlOptions = {
'filterColumnIndex': 0,
'ui': {
'chartType': 'ComboChart',
'chartOptions': {
'hAxis': { 'baselineColor': 'none' }
},
'chartView': { 'columns': [0, 3] },
'minRangeSize': 86400000
}
};
var control = new google.visualization.ControlWrapper({
'controlTyp': 'ChartRangeFilter',
'containerId': 'control',
'chartOptions': controlOptions
});
var chart = new google.visualization.ChartWrapper({
'chartType': 'ColumnChart',
'containerId': 'chart',
'options': {
// Use the same chart area width as the control for axis alignment.
'chartArea': { 'height': '80%', 'width': '90%' },
'hAxis': { 'slantedText': false },
'vAxis': { 'viewWindow': { 'min': 0, 'max': 2000} },
'legend': { 'position': 'none' }
},
// Convert the first column from 'date' to 'string'.
'view': {
'columns': [
{
'calc': function (dataTable, rowIndex) {
return dataTable.getFormattedValue(rowIndex, 0);
},
'type': 'string'
}, 1, 2, 3, 4]
}
});
var tdata = new google.visualization.DataTable();
tdata.addColumn('date', 'Date');
tdata.addColumn('number', 'Up Time %');
for (var i = 0; i < data.length; i++) {
var date = new Date(parseInt(data[i].Date.substr(6)));
var up_time = (data[i].SiteUptime / (data[i].SiteDowntime + data[i].SiteUptime) * 100);
tdata.addRow([date, up_time]);
}
dashboard.bind(control, chart);
dashboard.draw(tdata);
});
}