Google Annotation Chart with R
gvisAnnotationChart charts are interactive time series line charts that support annotations. Unlike the gvisAnnotatedTimeLine, which uses Flash, annotation charts are SVG/VML and should be preferred whenever possible.
gvisAnnotationChart( data, datevar = "", numvar = "", idvar = "", titlevar = "", annotationvar = "", date.format = "%Y/%m/%d", options = list(), chartid )
data |
a |
datevar |
column name of |
numvar |
column name of |
idvar |
column name of |
titlevar |
column name of |
annotationvar |
column name of |
date.format |
if |
options |
list of configuration options, see: https://developers.google.com/chart/interactive/docs/gallery/annotationchart#Configuration_Options The parameters can be set via a named list. The parameters have to map those of the Google documentation.
For more details see the Google API documentation and the R examples below. |
chartid |
character. If missing (default) a random chart id will be
generated based on chart type and |
gvisAnnotationChart 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.
Markus Gesmann markus.gesmann@gmail.com, Diego de Castillo decastillo@gmail.com
Google Chart Tools API: https://developers.google.com/chart/interactive/docs/gallery/annotationchart
See also print.gvis
, plot.gvis
for printing and
plotting methods. Further see reshape
for reshaping data, e.g.
from a wide format into a long format.
## Please note that by default the googleVis plot command ## will open a browser window and requires Internet ## connection to display the visualisation. data(Stock) Stock A1 <- gvisAnnotationChart(Stock, datevar="Date", numvar="Value", idvar="Device", titlevar="Title", annotationvar="Annotation", options=list(displayAnnotations=TRUE, legendPosition='newRow', width=600, height=350) ) plot(A1) ## Two Y-axis A2 <- gvisAnnotationChart(Stock, datevar="Date", numvar="Value", idvar="Device", titlevar="Title", annotationvar="Annotation", options=list(displayAnnotations=TRUE, width=600, height=350, scaleColumns='[0,1]', scaleType='allmaximized') ) plot(A2) ## Zoom into the time window, no Y-axis ticks A3 <- gvisAnnotationChart(Stock, datevar="Date", numvar="Value", idvar="Device", titlevar="Title", annotationvar="Annotation", options=list( width=600, height=350, zoomStartTime=as.Date("2008-01-04"), zoomEndTime=as.Date("2008-01-05")) ) plot(A3) ## Colouring the area below the lines to create an area chart A4 <- gvisAnnotationChart(Stock, datevar="Date", numvar="Value", idvar="Device", titlevar="Title", annotationvar="Annotation", options=list( width=600, height=350, fill=10, displayExactValues=TRUE, colors="['#0000ff','#00ff00']") ) plot(A4) ## Data with POSIXct datetime variable A5 <- gvisAnnotationChart(Andrew, datevar="Date/Time UTC", numvar="Pressure_mb", options=list(scaleType='maximized') ) plot(A5) ## Not run: ## Plot Apple's monthly stock prices since 1984 ## Get current date d <- Sys.time() current.year <- format(d, "%Y") current.month <- format(d, "%m") current.day <- format(d, "%d") ## Yahoo finance sets January to 00 hence: month <- as.numeric(current.month) - 1 month <- ifelse(month < 10, paste("0",month, sep=""), m) ## Get weekly stock prices from Apple Inc. tckr <- 'AAPL' yahoo <- 'https://ichart.finance.yahoo.com/table.csv' fn <- sprintf('%s?s=%s&a=08&b=7&c=1984&d=%s&e=%s&f=%s&g=w&ignore=.csv', yahoo, tckr, month, current.day, current.year) ## Get data from Yahoo! Finance data <- read.csv(fn, colClasses=c("Date", rep("numeric",6))) AAPL <- reshape(data[,c("Date", "Close", "Volume")], idvar="Date", times=c("Close", "Volume"), timevar="Type", varying=list(c("Close", "Volume")), v.names="Value", direction="long") ## Calculate previous two years for zoom start time lyd <- as.POSIXlt(as.Date(d)) lyd$year <- lyd$year-2 lyd <- as.Date(lyd) aapl <- gvisAnnotationChart(AAPL, datevar="Date", numvar="Value", idvar="Type", options=list( colors="['blue', 'lightblue']", zoomStartTime=lyd, zoomEndTime=as.Date(d), legendPosition='newRow', width=600, height=400, scaleColumns='[0,1]', scaleType='allmaximized') ) plot(aapl) ## End(Not run)
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.