Builder for column charts. For more details, see the Gviz documentation.
Methods
Method | Return type | Brief description |
---|---|---|
addRange(range) | EmbeddedChartBuilder | Adds a Range to the chart represented by this builder. |
asAreaChart() | EmbeddedAreaChartBuilder | Sets the chart type to AreaChart and returns an EmbeddedAreaChartBuilder . |
asBarChart() | EmbeddedBarChartBuilder | Sets the chart type to BarChart and returns an EmbeddedBarChartBuilder . |
asColumnChart() | EmbeddedColumnChartBuilder | Sets the chart type to ColumnChart and returns an EmbeddedColumnChartBuilder . |
asLineChart() | EmbeddedLineChartBuilder | Sets the chart type to LineChart and returns an EmbeddedLineChartBuilder . |
asPieChart() | EmbeddedPieChartBuilder | Sets the chart type to PieChart and returns an EmbeddedPieChartBuilder . |
asScatterChart() | EmbeddedScatterChartBuilder | Sets the chart type to ScatterChart and returns an EmbeddedScatterChartBuilder . |
asTableChart() | EmbeddedTableChartBuilder | Sets the chart type to TableChart and returns an EmbeddedTableChartBuilder . |
build() | EmbeddedChart | Builds the chart to reflect all changes made to it. |
getChartType() | ChartType | Returns the current chart type. |
getContainer() | ContainerInfo | Return the ContainerInfo, which encapsulates where the chart appears on the sheet. |
getRanges() | Range[] | Returns a copy of the list of ranges currently providing data for this chart. |
removeRange(range) | EmbeddedChartBuilder | Removes the specified Range from the chart represented by this builder. |
reverseCategories() | EmbeddedColumnChartBuilder | Reverses the drawing of series in the domain axis. |
setBackgroundColor(cssValue) | EmbeddedColumnChartBuilder | Sets the background color for the chart. |
setChartType(type) | EmbeddedChartBuilder | Changes the type of chart. |
setColors(cssValues) | EmbeddedColumnChartBuilder | Sets the colors for the lines in the chart. |
setLegendPosition(position) | EmbeddedColumnChartBuilder | Sets the position of the legend with respect to the chart. |
setLegendTextStyle(textStyle) | EmbeddedColumnChartBuilder | Sets the text style of the chart legend. |
setOption(option, value) | EmbeddedChartBuilder |
Sets advanced options for this chart. |
setPosition(anchorRowPos, anchorColPos, offsetX, offsetY) | EmbeddedChartBuilder | Sets the position, changing where the chart appears on the sheet. |
setRange(start, end) | EmbeddedColumnChartBuilder | Sets the range for the chart. |
setStacked() | EmbeddedColumnChartBuilder | Uses stacked lines, meaning that line and bar values are stacked (accumulated). |
setTitle(chartTitle) | EmbeddedColumnChartBuilder | Sets the title of the chart. |
setTitleTextStyle(textStyle) | EmbeddedColumnChartBuilder | Sets the text style of the chart title. |
setXAxisTextStyle(textStyle) | EmbeddedColumnChartBuilder | Sets the horizontal axis text style. |
setXAxisTitle(title) | EmbeddedColumnChartBuilder | Adds a title to the horizontal axis. |
setXAxisTitleTextStyle(textStyle) | EmbeddedColumnChartBuilder | Sets the horizontal axis title text style. |
setYAxisTextStyle(textStyle) | EmbeddedColumnChartBuilder | Sets the vertical axis text style. |
setYAxisTitle(title) | EmbeddedColumnChartBuilder | Adds a title to the vertical axis. |
setYAxisTitleTextStyle(textStyle) | EmbeddedColumnChartBuilder | Sets the vertical axis title text style. |
useLogScale() | EmbeddedColumnChartBuilder | Makes the range axis into a logarithmic scale (requires all values to be positive). |
Detailed documentation
addRange(range)
Adds a Range to the chart represented by this builder. Will not add the Range if it has already been added to the chart.
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];
var chart = sheet.newChart()
.setChartType(Charts.ChartType.BAR)
.addRange(sheet.getRange("A1:B8"))
.setPosition(5, 5, 0, 0)
.build();
sheet.insertChart(chart);
Parameters
Name | Type | Description |
---|---|---|
range | Range | the range to add |
Return
EmbeddedChartBuilder
— the builder for method chaining
asAreaChart()
Sets the chart type to AreaChart and returns an EmbeddedAreaChartBuilder
.
Return
EmbeddedAreaChartBuilder
— a builder for an area chart
asBarChart()
Sets the chart type to BarChart and returns an EmbeddedBarChartBuilder
.
Return
EmbeddedBarChartBuilder
— a builder for a bar chart
asColumnChart()
Sets the chart type to ColumnChart and returns an EmbeddedColumnChartBuilder
.
Return
EmbeddedColumnChartBuilder
— a builder for a column chart
asLineChart()
Sets the chart type to LineChart and returns an EmbeddedLineChartBuilder
.
Return
EmbeddedLineChartBuilder
— a builder for a line chart
asPieChart()
Sets the chart type to PieChart and returns an EmbeddedPieChartBuilder
.
Return
EmbeddedPieChartBuilder
— a builder for a pie chart
asScatterChart()
Sets the chart type to ScatterChart and returns an EmbeddedScatterChartBuilder
.
Return
EmbeddedScatterChartBuilder
— a builder for a scatter chart
asTableChart()
Sets the chart type to TableChart and returns an EmbeddedTableChartBuilder
.
Return
EmbeddedTableChartBuilder
— a builder for a table chart
build()
Builds the chart to reflect all changes made to it. This method will not automatically draw the chart on top of the spreadsheet. A new chart must be inserted via sheet.insertChart(chart), and an existing chart should be updated via sheet.update(chart);
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];
var range = sheet.getRange("A1:B5");
var chart = sheet.newChart()
.setChartType(Charts.ChartType.BAR)
.addRange(range)
.setPosition(5, 5, 0, 0)
.build()
sheet.insertChart(chart);
Return
EmbeddedChart
— the created chart, which must still be added to the spreadsheet
getContainer()
Return the ContainerInfo, which encapsulates where the chart appears on the sheet.
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];
var chartBuilder = sheet.newChart()
.setChartType(Charts.ChartType.BAR)
.addRange(sheet.getRange("A1:B8"))
.setPosition(5, 5, 0, 0);
// This method returns the exact same data as Chart#getContainerInfo()
var containerInfo = chartBuilder.getContainer();
// Logs the values we used in setPosition()
Logger.log("Anchor Column: %s\r\nAnchor Row %s\r\nOffset X %s\r\nOffset Y %s",
containerInfo.getAnchorColumn(),
containerInfo.getAnchorRow(),
containerInfo.getOffsetX(),
containerInfo.getOffsetY());
Return
ContainerInfo
— an object containing the chart container's position
getRanges()
Returns a copy of the list of ranges currently providing data for this chart. Use addRange and removeRange to modify this list.
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];
var chartBuilder = sheet.newChart()
.setChartType(Charts.ChartType.BAR)
.addRange(sheet.getRange("A1:B8"))
.setPosition(5, 5, 0, 0)
var ranges = chartBuilder.getRanges();
// There's only one range as a data source for this chart,
// so this logs "A1:B8"
for (var i in ranges) {
var range = ranges[i];
Logger.log(range.getA1Notation());
}
Return
Range[]
— an array of ranges that serve as the chart to be built's data source
removeRange(range)
Removes the specified Range from the chart represented by this builder. Will not throw an error
if the Range is not in this chart.
The range removed must match up with a range added via addRange(range)
, or it will
not be removed, and it will not throw an exception. This method cannot be used to partially
remove values from a range.
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];
var firstRange = sheet.getRange("A1:B5");
var secondRange = sheet.getRange("A6:B8");
var chartBuilder = sheet.newChart()
.setChartType(Charts.ChartType.BAR)
.addRange(firstRange)
// This range will render in a different color
.addRange(secondRange)
.setPosition(5, 5, 0, 0);
// Note that you can use either of these two formats, but the range
// MUST match up with a range that was added via addRange(), or it
// will not be removed, and will not throw an exception
chartBuilder.removeRange(firstRange);
chartBuilder.removeRange(sheet.getRange("A6:B8"));
var chart = chartBuilder.build();
sheet.insertChart(chart);
Parameters
Name | Type | Description |
---|---|---|
range | Range | the range to remove |
Return
EmbeddedChartBuilder
— the builder for method chaining
reverseCategories()
Reverses the drawing of series in the domain axis. For vertical-range charts (such as line, area or column charts), this means the horizontal axis is drawn from right to left. For horizontal-range charts (such as bar charts), this means the vertical axis is drawn from top to bottom. For pie charts, this means the slices are drawn counterclockwise.
// Creates a pie chart builder and sets drawing of the slices in a counter-clockwise manner.
var builder = Charts.newPieChart();
builder.reverseCategories();
Return
EmbeddedColumnChartBuilder
— this builder, useful for chaining
setBackgroundColor(cssValue)
Sets the background color for the chart.
// Creates a line chart builder and sets the background color to gray
var builder = Charts.newLineChart();
builder.setBackgroundColor("gray");
Parameters
Name | Type | Description |
---|---|---|
cssValue | String | the CSS value for the color (such as "blue" or "#00f") |
Return
EmbeddedColumnChartBuilder
— this builder, useful for chaining
setChartType(type)
Changes the type of chart. Not all embedded chart types are currently supported. See
ChartType
.
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];
var range = sheet.getRange("A1:B5");
var chart = sheet.newChart()
.setChartType(Charts.ChartType.BAR)
.addRange(range)
.setPosition(5, 5, 0, 0)
.build()
sheet.insertChart(chart);
Parameters
Name | Type | Description |
---|---|---|
type | ChartType | a chart type |
Return
EmbeddedChartBuilder
— the builder for method chaining
setColors(cssValues)
Sets the colors for the lines in the chart.
// Creates a line chart builder and sets the first two lines to be drawn in green and red,
// respectively.
var builder = Charts.newLineChart();
builder.setColors(["green", "red"]);
Parameters
Name | Type | Description |
---|---|---|
cssValues | String[] | an array of color CSS values, such as ["red", "#acf"] . The nth
element in the array represents the color of the nth line in the chart. |
Return
EmbeddedColumnChartBuilder
— this builder, useful for chaining
setLegendPosition(position)
Sets the position of the legend with respect to the chart. By default, there will be no legend.
// Creates a line chart builder and sets the legend position to right.
var builder = Charts.newLineChart();
builder.setLegendPosition(Charts.Position.RIGHT);
Parameters
Name | Type | Description |
---|---|---|
position | Position | the position of the legend |
Return
EmbeddedColumnChartBuilder
— this builder, useful for chaining
setLegendTextStyle(textStyle)
Sets the text style of the chart legend.
// Creates a line chart builder and sets it up for a blue, 26-point legend.
var textStyleBuilder = Charts.newTextStyle().setColor('#0000FF').setFontSize(26);
var style = textStyleBuilder.build();
var builder = Charts.newLineChart();
builder.setLegendTextStyle(style);
Parameters
Name | Type | Description |
---|---|---|
textStyle | TextStyle | the text style to use for the chart legend. |
Return
EmbeddedColumnChartBuilder
— this builder, useful for chaining
setOption(option, value)
Sets advanced options for this chart. See https://developers.google.com/chart/interactive/docs/reference for what options are available.
This method will NOT validate the option you specify is valid for this chart type nor if the value is of the correct format/structure.
This example shows how to change the animation duration to 1 second and set a legend.
builder.setOption('title', 'Earnings projections');
builder.setOption('animation.duration', 1000);
builder.setOption('legend', {position: 'top', textStyle: {color: 'blue', fontSize: 16}});
Parameters
Name | Type | Description |
---|---|---|
option | String | the name of the option |
value | Object | the value of the option |
Return
EmbeddedChartBuilder
— the builder for method chaining
setPosition(anchorRowPos, anchorColPos, offsetX, offsetY)
Sets the position, changing where the chart appears on the sheet. AnchorRowPos and AnchorColPos are 1-indexed.
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];
var range = sheet.getRange("A1:B5");
var chart = sheet.newChart()
.setChartType(Charts.ChartType.BAR)
.addRange(range)
.setPosition(5, 5, 0, 0)
.build()
sheet.insertChart(chart);
Parameters
Name | Type | Description |
---|---|---|
anchorRowPos | Integer | the chart's top side will be anchored in this row |
anchorColPos | Integer | the chart's left side will be anchored in this column |
offsetX | Integer | the chart's upper right-hand corner will be offset by this many pixels |
offsetY | Integer | the chart's lower left-hand corner will be offset by this many pixels |
Return
EmbeddedChartBuilder
— the builder for method chaining
setRange(start, end)
Sets the range for the chart.
If any data points fall outside the range, the range will be expanded to include those data points.
Parameters
Name | Type | Description |
---|---|---|
start | Number | value for the lowest grid line of the range axis |
end | Number | value for the highest grid line of the range axis |
Return
EmbeddedColumnChartBuilder
— this builder, useful for chaining
setStacked()
Uses stacked lines, meaning that line and bar values are stacked (accumulated). By default, there is no stacking.
Return
EmbeddedColumnChartBuilder
— this builder, useful for chaining
setTitle(chartTitle)
Sets the title of the chart. The title will be displayed centered above the chart.
// Creates a line chart builder and title to 'My Line Chart'.
var builder = Charts.newLineChart();
builder.setTitle('My Line Chart')
Parameters
Name | Type | Description |
---|---|---|
chartTitle | String | the chart title. |
Return
EmbeddedColumnChartBuilder
— this builder, useful for chaining
setTitleTextStyle(textStyle)
Sets the text style of the chart title.
// Creates a line chart builder and sets it up for a blue, 26-point title.
var textStyleBuilder = Charts.newTextStyle().setColor('#0000FF').setFontSize(26);
var style = textStyleBuilder.build();
var builder = Charts.newLineChart();
builder.setTitleTextStyle(style);
Parameters
Name | Type | Description |
---|---|---|
textStyle | TextStyle | the text style to use for the chart title. TextStyleBuilder object can be created by calling Charts.newTextStyle(). |
Return
EmbeddedColumnChartBuilder
— this builder, useful for chaining
setXAxisTextStyle(textStyle)
Sets the horizontal axis text style.
// Creates a line chart builder and sets the X-axis text style to blue, 18-point font.
var textStyle = Charts.newTextStyle().setColor('blue').setFontSize(18).build();
var builder = Charts.newLineChart();
builder.setXAxisTextStyle(textStyle);
Parameters
Name | Type | Description |
---|---|---|
textStyle | TextStyle | the text style to use for the horizontal axis title. TextStyleBuilder object can be created by calling Charts.newTextStyle(). |
Return
EmbeddedColumnChartBuilder
— this builder, useful for chaining
setXAxisTitle(title)
Adds a title to the horizontal axis. The title will be centered and will appear below the axis value labels.
// Creates a line chart builder and sets the X-axis title.
var builder = Charts.newLineChart();
builder.setTitle('X-axis Title')
Parameters
Name | Type | Description |
---|---|---|
title | String | the title for the X-axis |
Return
EmbeddedColumnChartBuilder
— this builder, useful for chaining
setXAxisTitleTextStyle(textStyle)
Sets the horizontal axis title text style.
// Creates a line chart builder and sets the X-axis title text style to blue, 18-point font.
var textStyle = Charts.newTextStyle().setColor('blue').setFontSize(18).build();
var builder = Charts.newLineChart();
builder.setXAxisTitleTextStyle(textStyle);
Parameters
Name | Type | Description |
---|---|---|
textStyle | TextStyle | the text style to use for the horizontal axis title. TextStyleBuilder object can be created by calling Charts.newTextStyle(). |
Return
EmbeddedColumnChartBuilder
— this builder, useful for chaining
setYAxisTextStyle(textStyle)
Sets the vertical axis text style.
// Creates a line chart builder and sets the Y-axis text style to blue, 18-point font.
var textStyle = Charts.newTextStyle().setColor('blue').setFontSize(18).build();
var builder = Charts.newLineChart();
builder.setYAxisTextStyle(textStyle);
Parameters
Name | Type | Description |
---|---|---|
textStyle | TextStyle | the text style to use for the horizontal axis title. TextStyleBuilder object can be created by calling Charts.newTextStyle(). |
Return
EmbeddedColumnChartBuilder
— this builder, useful for chaining
setYAxisTitle(title)
Adds a title to the vertical axis. The title will be centered and will appear to the left of the value labels.
// Creates a line chart builder and sets the Y-axis title.
var builder = Charts.newLineChart();
builder.setTitle('Y-axis Title')
Parameters
Name | Type | Description |
---|---|---|
title | String | the title for the Y-axis |
Return
EmbeddedColumnChartBuilder
— this builder, useful for chaining
setYAxisTitleTextStyle(textStyle)
Sets the vertical axis title text style.
// Creates a line chart builder and sets the Y-axis title text style to blue, 18-point font.
var textStyle = Charts.newTextStyle().setColor('blue').setFontSize(18).build();
var builder = Charts.newLineChart();
builder.setYAxisTitleTextStyle(textStyle);
Parameters
Name | Type | Description |
---|---|---|
textStyle | TextStyle | the text style to use for the horizontal axis title. TextStyleBuilder object can be created by calling Charts.newTextStyle(). |
Return
EmbeddedColumnChartBuilder
— this builder, useful for chaining
useLogScale()
Makes the range axis into a logarithmic scale (requires all values to be positive). The range axis will be the vertical axis for vertical charts (line, area, column, etc.) and the horizontal axis for horizontal charts (bar, etc.)
Return
EmbeddedColumnChartBuilder
— this builder, useful for chaining