everybody
with the following code in R, I have display a simple gantt chart :
dat <- read.csv2(text=\"start;duration
1;4
7;3
15;2
\")
plot(NA
using package vistime
:
install.packages('vistime')
library(vistime)
df <- read.table(text="Task, Start, End
A,2,7
B,5,10
C,5,12
D,16,22
E,18,20", header=TRUE, sep = ',')
df$Start <- as.Date("2017-01-01") + df$Start
df$End <- as.Date("2017-01-01") + df$End
vistime(df, start="Start", end="End", events="Task")
https://github.com/shosaco/vistime
Extending the answer suggested by @Tyler Rinker:
library(ggplot2)
df <- read.table(text="Task, Start, End
A,2,7
B,5,10
C,5,12
D,16,22
E,18,20",
header=TRUE,
sep = ',')
p <- ggplot(df, aes(colour=Task))
p <- p + theme_bw()
p <- p + geom_segment(aes(x=Start,
xend=End,
y=Task,
yend=Task),
size=2)
p <- p + geom_point(aes(x=Start,
y=Task),
size=5)
p <- p + geom_point(aes(x=End,
y=Task),
size=5)
p <- p + geom_text(aes(x=Start-0.5,
y=Task,
label=Task),
fontface="bold")
p <- p + opts(legend.position="None",
panel.grid.major = theme_blank(),
axis.text.y = theme_blank())
p <- p + xlab("Duration")
p
Produces:
EDIT to produce centred labels
library(ggplot2)
df <- read.table(text="Task, Start, End
A,2,7
B,5,10
C,5,12
D,16,22
E,18,20",
header=TRUE,
sep = ',')
df$TaskLabel <- df$Task
df$Task <- as.numeric(df$Task)
p <- ggplot(df, aes(colour=TaskLabel))
p <- p + theme_bw()
p <- p + geom_segment(aes(x=Start,
xend=End,
y=Task,
yend=Task),
size=2)
p <- p + geom_point(aes(x=Start,
y=Task),
size=5)
p <- p + geom_point(aes(x=End,
y=Task),
size=5)
p <- p + geom_text(aes(x=(Start+End)/2,
y=Task+0.25,
label=TaskLabel),
fontface="bold")
p <- p + opts(legend.position="None",
panel.grid.major = theme_blank(),
axis.text.y = theme_blank())
p <- p + xlab("Duration")
p
Which in turn produces: