Google Gantt Chart with R googleChartName <- "ganttchart"gvisChartName <- "gvisGantt"
gvisChartName <- "gvisGantt"
A Gantt chart is a type of chart that illustrates the breakdown of a project into its component tasks.
gvisGantt( data, taskID = "", taskName = "", resource = "", start = "", end = "", duration = "", percentComplete = "", dependencies = "", options = list(), chartid )
data
: data.frame that contains the data to be visualised
taskID
: a string that refers to the column name in data
for the task ID to be used
taskName
: a string that refers to the column name in data
for the task name to be used
resource
: a string that refers to the column name in data
for the resource to be used
start
: a string that refers to the date column name in data
for the start dates
end
: a string that refers to the date column name in data
for the end dates
duration
: a string that refers to the numeric column name in data
for the task duration in milliseconds
percentComplete
: a string that refers to the numeric column name in data
for the percent complete to be used
dependencies
: a string that refers to the column name in data
for the dependencies to be used
options
: list of configuration options. The options are documented in detail by Google online:
gsub("CHARTNAME", googleChartName, readLines(file.path(".", "inst","mansections", "GoogleChartToolsURLConfigOptions.txt")))
paste(readLines(file.path(".", "inst", "mansections","gvisOptions.txt")))
chartid
: character. If missing (default) a random chart id will be generated based on chart type and tempfile
paste(gvisChartName) returns list of class
paste(readLines(file.path(".", "inst", "mansections","gvisOutputStructure.txt")))
# 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)
Google Chart Tools API: gsub("CHARTNAME", googleChartName, readLines(file.path(".", "inst","mansections", "GoogleChartToolsURL.txt")))
Markus Gesmann markus.gesmann@gmail.com