A timeline is a chart that depicts how a set of resources are used over time. One popular type of timeline is the Gantt chart.
Usage
gvisTimeline(
data,
rowlabel = "",
barlabel = "",
start = "",
end = "",
options = list(),
chartid
)
Arguments
- data
data.frame that contains the data to be visualised
- rowlabel
a string that refers to the column name in
data
for the row labels to be used- barlabel
a string that refers to the column name in
data
for the bar labels to be used- start
number, date or datetime for the start dates
- end
number, date or datetime for the end dates
- options
list of configuration options. The options are documented in detail by Google online:
https://developers.google.com/chart/interactive/docs/gallery/timeline#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
gvisTimeline
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/timeline
Author
Markus Gesmann markus.gesmann@gmail.com
Examples
dat <- data.frame(Term=c("1","2","3"),
President=c("Whasington", "Adams", "Jefferson"),
start=as.Date(x=c("1789-03-29", "1797-02-03", "1801-02-03")),
end=as.Date(x=c("1797-02-03", "1801-02-03", "1809-02-03")))
tl <- gvisTimeline(data=dat[,-1], rowlabel="President",
start="start", end="end")
plot(tl)
tl <- gvisTimeline(data=dat, barlabel="President",
start="start", end="end")
plot(tl)
tl <- gvisTimeline(data=dat, rowlabel="President",
start="start", end="end",
options=list(timeline="{showRowLabels:false}"))
plot(tl)
dat <- data.frame(Position=c(rep("President", 3), rep("Vice", 3)),
Name=c("Washington", "Adams", "Jefferson",
"Adams", "Jefferson", "Burr"),
start=as.Date(x=rep(c("1789-03-29", "1797-02-03", "1801-02-03"),2)),
end=as.Date(x=rep(c("1797-02-03", "1801-02-03", "1809-02-03"),2)))
tl <- gvisTimeline(data=dat, rowlabel="Name",barlabel="Position",
start="start", end="end",
options=list(timeline="{showRowLabels:true}"))
plot(tl)
tl <- gvisTimeline(data=dat, rowlabel="Name",barlabel="Position",
start="start", end="end",
options=list(timeline="{groupByRowLabel:false}",
backgroundColor='#ffd', height=350,
colors="['#cbb69d', '#603913', '#c69c6e']"))
plot(tl)
# Datetime example
dat <- data.frame(Room=c("Room 1","Room 2","Room 3"),
Language=c("English", "German", "French"),
start=as.POSIXct(c("2014-03-14 14:00", "2014-03-14 15:00",
"2014-03-14 14:30")),
end=as.POSIXct(c("2014-03-14 15:00", "2014-03-14 16:00",
"2014-03-14 15:30")))
tl <- gvisTimeline(data=dat, rowlabel="Language",
start="start", end="end")
plot(tl)
if (FALSE) {
require(timeline)
data(ww2)
timeline(ww2, ww2.events, event.spots=2, event.label='', event.above=FALSE)
ww2$Person <- gsub("\\n" ," ", ww2$Person)
plot(gvisTimeline(ww2, barlabel="Person", rowlabel="Group",
start="StartDate", end="EndDate",
options=list(width=600, height=350))
)
}