gvisGantt {googleVis} | R Documentation |
Google Gantt Chart with R
Description
A Gantt chart is a type of chart that illustrates the breakdown of a project into its component tasks.
Usage
gvisGantt(
data,
taskID = "",
taskName = "",
resource = "",
start = "",
end = "",
duration = "",
percentComplete = "",
dependencies = "",
options = list(),
chartid
)
Arguments
data |
data.frame that contains the data to be visualised |
taskID |
a string that refers to the column name in
|
taskName |
a string that refers to the column name in
|
resource |
a string that refers to the column name in
|
start |
a string that refers to the date column name in
|
end |
a string that refers to the date column name in
|
duration |
a string that refers to the numeric column name in
|
percentComplete |
a string that refers to the numeric column name in
|
dependencies |
a string that refers to the column name in
|
options |
list of configuration options. The options are documented in detail by Google online: https://developers.google.com/chart/interactive/docs/gallery/ganttchart#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 |
Value
gvisGantt 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.
Author(s)
Markus Gesmann markus.gesmann@gmail.com
References
Google Chart Tools API: https://developers.google.com/chart/interactive/docs/gallery/ganttchart
Examples
# Helper function to generate example data
daysToMilliseconds <- function(days){
days * 24 * 60 * 60 * 1000
}
dat <- data.frame(
taskID = c("Research", "Write", "Cite", "Complete", "Outline"),
taskName = c("Find sources", "Write Paper", "Create bibliography",
"Hand in paper", "Outline paper"),
resource = c(NA, "write", "write", "complete", "write"),
start = c(as.Date("2015-01-01"), NA, NA, NA, NA),
end = as.Date(c("2015-01-05", "2015-01-09", "2015-01-07",
"2015-01-10", "2015-01-06")),
duration = c(NA, daysToMilliseconds(c(3, 1, 1, 1))),
percentComplete = c(100, 25, 20, 0, 100),
dependencies = c(NA, "Research, Outline", "Research",
"Cite, Write", "Research")
)
gntt1 <- gvisGantt(dat, taskID = "taskID",
taskName = "taskName",
resource = "resource",
start = "start",
end = "end",
duration = "duration",
percentComplete = "percentComplete",
dependencies = "dependencies")
plot(gntt1)
## gantt chart with options set
gntt2 <- gvisGantt(dat, taskID = "taskID",
taskName = "taskName",
resource = "resource",
start = "start",
end = "end",
duration = "duration",
percentComplete = "percentComplete",
dependencies = "dependencies",
options = list(
height = 275,
gantt = "{
criticalPathEnabled: true,
innerGridHorizLine: {
stroke: '#ffe0b2',
strokeWidth: 2
},
innerGridTrack: {fill: '#fff3e0'},
innerGridDarkTrack: {fill: '#ffcc80'},
labelStyle: {
fontName: 'Arial',
fontSize: 14
}}"
))
plot(gntt2)
# Example with date time
dat <- data.frame(
taskID = c("Research", "Write", "Complete"),
taskName = c("Find sources", "Write Paper", "Hand in paper"),
resource = c(NA, "write", "complete"),
start = c(as.POSIXct("2015-01-01 6:00:00"), NA, NA),
end = as.POSIXct(c("2015-01-01 8:00:00", "2015-01-01 13:30:00",
"2015-01-01 20:30:00")),
duration = c(NA, daysToMilliseconds(c(.1, .05))),
percentComplete = c(100, 25, 0),
dependencies = c(NA, "Research", "Write"))
gntt3 <- gvisGantt(dat, taskID = "taskID",
taskName = "taskName",
resource = "resource",
start = "start",
end = "end",
duration = "duration",
percentComplete = "percentComplete",
dependencies = "dependencies")
plot(gntt3)