
gvisAnnotatedTimeLine(data, datevar = "", numvar="", idvar = "",
titlevar="", annotationvar="",
date.format = "%Y/%m/%d",
options = list(), chartid)
data.frame
. The data has to have at least two
columns, one with date information (datevar
)
and one numerical variable.data
which shows the date dimension. The
information has to be of class Date
or POSIX*
time series.data
which shows the values to be displayed
against datevar
. The
information has to be numeric
.datevar
is of class Date
then this argument
specifies how the dates are reformatted to be used by JavaScript.scaleColumns
gvisAnnotatedTimeLine
returns list of class
"gvis
"
and "list
".
An object of class "gvis
" is a list containing at least the
following components:type
chartid
html
scaleType
thickness
wmode
zoomEndTime
zoomStartTime
tempfile
You can display one or more lines on your chart. Each row represents an X position on the chart - that is, a specific time; each line is described by a set of one to three columns.
Follow the link for Google's data policy.
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 Flash and Internet
## connection to display the visualisation.
data(Stock)
Stock
A1 <- gvisAnnotatedTimeLine(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 <- gvisAnnotatedTimeLine(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 <- gvisAnnotatedTimeLine(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)
## Data with POSIXct datetime variable
A4 <- gvisAnnotatedTimeLine(Andrew, datevar="Date/Time UTC",
numvar="Pressure_mb",
options=list(scaleType='maximized')
)
plot(A4)
## 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'
fn <- sprintf('http://ichart.finance.yahoo.com/table.csv?s=%s&a=08&b=7&c=1984&d=%s&e=%s&f=%s&g=w&ignore=.csv',
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", "Type",
direction="long")
## Calculate last year for zoom start time
lyd <- as.POSIXlt(as.Date(d))
lyd$year <- lyd$year-1
lyd <- as.Date(lyd)
aapl <- gvisAnnotatedTimeLine(AAPL, datevar="Date",
numvar="Value", idvar="Type",
options=list(
zoomStartTime=lyd,
zoomEndTime=as.Date(d),
legendPosition='newRow',
width=600, height=400, scaleColumns='[0,1]',
scaleType='allmaximized')
)
plot(aapl)
Run the code above in your browser using DataLab