Builder for DataViewDefinition
objects.
Here's an example of using the builder. The data is imported from a Google spreadsheet.
function doGet() { // This example creates two table charts side by side. One uses a data view definition to // restrict the number of displayed columns. // Get sample data from a spreadsheet. var dataSourceUrl = 'https://docs.google.com/spreadsheet/tq?range=A1%3AF' + '&key=0Aq4s9w_HxMs7dHpfX05JdmVSb1FpT21sbXd4NVE3UEE&gid=4&headers=-1'; // Create a chart to display all of the data. var originalChart = Charts.newTableChart() .setDimensions(600, 500) .setDataSourceUrl(dataSourceUrl) .build(); // Create another chart to display a subset of the data (only columns 1 and 4). var dataViewDefinition = Charts.newDataViewDefinition().setColumns([0, 3]); var limitedChart = Charts.newTableChart() .setDimensions(200, 500) .setDataSourceUrl(dataSourceUrl) .setDataViewDefinition(dataViewDefinition) .build(); var htmlOutput = HtmlService.createHtmlOutput(); var originalChartData = Utilities.base64Encode(originalChart.getAs('image/png').getBytes()); var originalChartUrl = "data:image/png;base64," + encodeURI(originalChartData); var limitedChartData = Utilities.base64Encode(limitedChart.getAs('image/png').getBytes()); var limitedChartUrl = "data:image/png;base64," + encodeURI(limitedChartData); htmlOutput.append("<table><tr><td>"); htmlOutput.append("<img border=\"1\" src=\"" + originalChartUrl + "\">"); htmlOutput.append("</td><td>"); htmlOutput.append("<img border=\"1\" src=\"" + limitedChartUrl + "\">"); htmlOutput.append("</td></tr></table>"); return htmlOutput; }
Methods
Method | Return type | Brief description |
---|---|---|
build() | DataViewDefinition | Builds and returns the data view definition object that was built using this builder. |
setColumns(columns) | DataViewDefinitionBuilder | Sets the indexes of the columns to include in the data view as well as specifying role-column information. |
Detailed documentation
build()
Builds and returns the data view definition object that was built using this builder.
Return
DataViewDefinition
— A data view definition object that was built using this builder.
setColumns(columns)
Sets the indexes of the columns to include in the data view as well as specifying role-column information. This subset of column indexes refer to the columns of the data source that the data view is derived from.
A column role describes the purpose of the data in that column: for example, a column might hold data describing tooltip text, data point annotations, or uncertainty indicators. For more details, see DataTable Roles in the Google Charts documentation.
Assuming a spreadsheet with the following data in A1:C3:
"abc", 20, "blue" "def", 30, "red" "ghi", 40, "orange"The following code creates a bar chart where each bar is a different color. The colors are assigned via a style "role column".
var COLUMN_SPEC = [ 0, // categories 1, // counts {sourceColumn: 2, role: 'style'} ]; function roleColumnChart() { var spreadsheet = SpreadsheetApp.getActiveSpreadsheet(); var sheet = spreadsheet.getActiveSheet(); var viewSpec = Charts.newDataViewDefinition() .setColumns(COLUMN_SPEC) .build(); var chartBuilder = sheet.newChart() .setChartType(Charts.ChartType.BAR) .setDataViewDefinition(viewSpec) .setOption('useFirstColumnAsDomain', true) .setPosition(5, 1, 0, 0) .setOption('hAxis', { title: 'Counts' }) .setOption('vAxis', { title: 'Categories' }) .addRange(sheet.getRange('A1:C3')); sheet.insertChart(chartBuilder.build()); };
Parameters
Name | Type | Description |
---|---|---|
columns | Object[] | An array of column indexes, or column descriptions (an object), to include in the data view. The column descriptions define a column role. The data table and the enumeration for data view columns are zero-based. |
Return
DataViewDefinitionBuilder
— This builder, useful for chaining.