The gvisBarChart function reads a data.frame and creates text output referring to the Google Visualisation API, which can be included into a web page, or as a stand-alone page. The actual chart is rendered by the web browser using SVG or VML.
Usage
gvisBarChart(data, xvar = "", yvar = "", options = list(), chartid)
Arguments
- data
a
data.frame
to be displayed as a bar chart- xvar
name of the character column which contains the category labels for the x-axes.
- yvar
a vector of column names of the numerical variables to be plotted. Each column is displayed as a separate bar/column.
- options
list of configuration options, see:
https://developers.google.com/chart/interactive/docs/gallery/barchart#Configuration_Options
The parameters can be set via a named list. The parameters have to map those of the Google documentation.
Boolean arguments are set to either
TRUE
orFALSE
, using the R syntax.Google API parameters with a single value and with names that don't include a "." are set like one would do in R, that is
options=list(width=200, height=300)
. Exceptions to this rule are the width and height options forgvisAnnotatedTimeLine
andgvisAnnotationChart
. For those two functions, width and height must be character strings of the format"Xpx"
, whereX
is a number, or"automatic"
. For example,options=list(width="200px", height="300px")
.Google API parameters with names that don't include a ".", but require multivalues are set as a character, wrapped in "[ ]" and separated by commas, e.g.
options=list(colors="['#cbb69d', '#603913', '#c69c6e']")
Google API parameters with names that do include a "." present parameters with several sub-options and have to be set as a character wrapped in "{ }". The values of those sub-options are set via parameter:value. Boolean values have to be stated as
'true'
or'false'
. For example the Google documentaion states the formating options for the vertical axis and states the parameter asvAxis.format
. Then this paramter can be set in R as:options=list(vAxis="\{format:'#,###%'\}")
.If several sub-options have to be set, e.g.
titleTextStyle.color
,titleTextStyle.fontName
andtitleTextStyle.fontSize
, then those can be combined in one list item such as:options=list(titleTextStyle="\{color:'red', fontName:'Courier', fontSize:16\}")
paramters that can have more than one value per sub-options are wrapped in "[ ]". For example to set the labels for left and right axes use:
options=list(vAxes="[\{title:'val1'\}, \{title:'val2'\}]")
gvis.editor
a character label for an on-page button that opens an in-page dialog box enabling users to edit, change and customise the chart. By default no value is given and therefore no button is displayed.
- chartid
character. If missing (default) a random chart id will be generated based on chart type and
tempfile
Value
gvisBarChart
returns list
of class
"gvis
" and "list
".
An object of class "gvis
" is a list containing at least the
following components:
type
Google visualisation type
chartid
character id of the chart object. Unique chart ids are required to place several charts on the same page.
html
a list with the building blocks for a page
header
a character string of a html page header:
<html>...<body>
,chart
a named character vector of the chart's building blocks:
jsHeader
Opening
<script>
tag and reference to Google's JavaScript library.jsData
JavaScript function defining the input
data
as a JSON object.jsDrawChart
JavaScript function combing the data with the visualisation API and user options.
jsDisplayChart
JavaScript function calling the handler to display the chart.
jsFooter
End tag
</script>
.jsChart
Call of the
jsDisplayChart
function.divChart
<div>
container to embed the chart into the page.
caption
character string of a standard caption, including data name and chart id.
footer
character string of a html page footer:
</body>...</html>
, including the used R and googleVis version and link to Google's Terms of Use.
References
Google Chart Tools API: https://developers.google.com/chart/interactive/docs/gallery/barchart
See also
See also print.gvis
, plot.gvis
for
printing and plotting methods
Examples
## Please note that by default the googleVis plot command
## will open a browser window and requires an internet
## connection to display the visualisation.
df <- data.frame(country=c("US", "GB", "BR"),
val1=c(1,3,4),
val2=c(23,12,32))
## Bar chart
Bar1 <- gvisBarChart(df, xvar="country", yvar=c("val1", "val2"))
plot(Bar1)
## Stacked bar chart
Bar2 <- gvisBarChart(df, xvar="country", yvar=c("val1", "val2"),
options=list(isStacked=TRUE))
plot(Bar2)
## Add a customised title and change width of bars
Bar3 <- gvisBarChart(df, xvar="country", yvar=c("val1", "val2"),
options=list(title="Hello World",
titleTextStyle="{color:'red',fontName:'Courier',fontSize:16}",
bar="{groupWidth:'100%'}"))
plot(Bar3)
if (FALSE) {
## Change x-axis to percentages
Bar4 <- gvisBarChart(df, xvar="country", yvar=c("val1", "val2"),
options=list(hAxis="{format:'#,###%'}"))
plot(Bar4)
## The following example reads data from a Wikipedia table and displays
## the information in a bar chart.
## We use the readHMLTable function of the XML package to get the data
library(XML)
## Get the data of the biggest ISO container companies from Wikipedia
##(table 3):
df=readHTMLTable(readLines("https://en.wikipedia.org/wiki/Intermodal_freight_transport"))[[3]][,1:2]
## Rename the second column
names(df)[2]="TEU capacity"
## The numbers are displayed with commas to separate thousands, so let's
## get rid of them:
df[,2]=as.numeric(gsub(",", "", as.character(df[,2])))
## Finally we can create a nice bar chart:
Bar5 <- gvisBarChart(df, options=list(
chartArea="{left:250,top:50,width:\"50%\",height:\"75%\"}",
legend="bottom",
title="Top 20 container shipping companies in order of TEU capacity"))
plot(Bar5)
}