google.load('visualization', '1', {packages: ['controls']});
google.setOnLoadCallback(drawChart);
function drawChart () {
var Chart = new google.visualization.ChartWrapper({
chartType:'LineChart',
dataSourceUrl:'https://docs.google.com/a/google.com/spreadsheet/ccc?key=1uWxegqnxB0ZxAl3FmiNuI00A09Vbir_W9RqxE-pGnRQ',
containerId:'chart_div',
query:'SELECT A,B,C,D,E where B is not null',
options:{
title: 'Calls Offered',
curveType: 'function',
theme:'maximized',
width: 550,
height: 300
}
});
var data = Chart.setView({[0,1,2,3]});
var columnsTable = new google.visualization.DataTable();
columnsTable.addColumn('number', 'colIndex');
columnsTable.addColumn('string', 'colLabel');
var initState= {selectedValues: []};
// put the columns into this data table (skip column 0)
for (var i = 1; i < data.getNumberOfColumns(); i++) {
columnsTable.addRow([i, data.getColumnLabel(i)]);
// you can comment out this next line if you want to have a default selection other than the whole list
initState.selectedValues.push(data.getColumnLabel(i));
}
// you can set individual columns to be the default columns (instead of populating via the loop above) like this:
// initState.selectedValues.push(data.getColumnLabel(4));
var columnFilter = new google.visualization.ControlWrapper({
controlType: 'CategoryFilter',
containerId: 'colFilter_div',
dataTable: columnsTable,
options: {
filterColumnLabel: 'colLabel',
ui: {
label: 'Columns',
allowTyping: false,
allowMultiple: true,
allowNone: false,
selectedValuesLayout: 'belowStacked'
}
},
state: initState
});
function setChartView () {
var state = columnFilter.getState();
var row;
var view = {
columns: [0]
};
for (var i = 0; i < state.selectedValues.length; i++) {
row = columnsTable.getFilteredRows([{column: 1, value: state.selectedValues[i]}])[0];
view.columns.push(columnsTable.getValue(row, 0));
}
// sort the indices into their original order
view.columns.sort(function (a, b) {
return (a - b);
});
Chart.setView(view);
Chart.draw();
}
google.visualization.events.addListener(columnFilter, 'statechange', setChartView);
setChartView();
columnFilter.draw();
}
google.load('visualization', '1', {packages: ['controls']});google.setOnLoadCallback(initialize);
function initialize() { var opts = {sendMethod: 'auto'}; // Replace the data source URL on next line with your data source URL. var query = new google.visualization.Query('https://docs.google.com/a/google.com/spreadsheet/ccc?key=1uWxegqnxB0ZxAl3FmiNuI00A09Vbir_W9RqxE-pGnRQ', opts);
// Optional request to return only column C and the sum of column B, grouped by C members. query.setQuery('select A,B,C,D,E where B is not null');
// Send the query with a callback function. query.send(handleQueryResponse);}
function handleQueryResponse(response) { // Called when the query response is returned. if (response.isError()) { alert('Error in query: ' + response.getMessage() + ' ' + response.getDetailedMessage()); return; }
var data = response.getDataTable(); var Chart = new google.visualization.ChartWrapper({ chartType:'LineChart', dataTable:data, containerId:'chart_div', options:{ title: 'Calls Offered', curveType: 'function', theme:'maximized', width: 550, height: 300 } });
var columnsTable = new google.visualization.DataTable(); columnsTable.addColumn('number', 'colIndex'); columnsTable.addColumn('string', 'colLabel'); var initState= {selectedValues: []}; // put the columns into this data table (skip column 0) for (var i = 1; i < data.getNumberOfColumns(); i++) { columnsTable.addRow([i, data.getColumnLabel(i)]); // you can comment out this next line if you want to have a default selection other than the whole list initState.selectedValues.push(data.getColumnLabel(i)); } // you can set individual columns to be the default columns (instead of populating via the loop above) like this: // initState.selectedValues.push(data.getColumnLabel(4));
var columnFilter = new google.visualization.ControlWrapper({ controlType: 'CategoryFilter', containerId: 'colFilter_div', dataTable: columnsTable, options: { filterColumnLabel: 'colLabel', ui: { label: 'Columns', allowTyping: false, allowMultiple: true, allowNone: false, selectedValuesLayout: 'aside' } }, state: initState }); function setChartView () { var state = columnFilter.getState(); var row; var view = { columns: [0] }; for (var i = 0; i < state.selectedValues.length; i++) { row = columnsTable.getFilteredRows([{column: 1, value: state.selectedValues[i]}])[0]; view.columns.push(columnsTable.getValue(row, 0)); } // sort the indices into their original order view.columns.sort(function (a, b) { return (a - b); }); Chart.setView(view); Chart.draw(); } google.visualization.events.addListener(columnFilter, 'statechange', setChartView); setChartView(); columnFilter.draw();}