我想根據用戶Didzis Elferts提供的慷慨代碼在ggplot中製作甘特圖。我想添加一條顯示今天日期的垂直線,但ggplot2
包中的geom_vline
層只返回Error: Discrete value supplied to continuous scale
。這裏是我的代碼:水平線和垂直線在ggplot中接受「Date」類的麻煩?
today <- as.Date(Sys.Date(), "%m/%d/%Y")
library(scales)
ggplot(mdfr, aes(time,name, colour = is.critical)) +
geom_line(size = 6) +
xlab("") + ylab("")+
labs(title="Sample Project Progress")+
theme_bw()+
scale_x_datetime(breaks=date_breaks("1 year"))+
geom_vline(aes(xintercept=today))
情節沒有geom_vline
命令如下:
有什麼理由geom_vline
不會爲「日期」字工作?
編輯:用於生成情節重現代碼:
### GANTT CHART 1 ###############3
tasks <- c("Meetings", "Client Calls", "Design", "Bidding", "Construction")
dfr <- data.frame(
name = factor(tasks, levels = tasks),
start.date = c("07/08/2013", "07/08/2013", "07/23/2013", "08/30/2013", "9/30/2013"),
end.date = c("07/12/2013", "07/13/2013", "08/15/2013", "09/12/2013", "12/01/2013"),
is.critical = c(TRUE, FALSE, TRUE, TRUE, TRUE))
mdfr <- melt(dfr, measure.vars = c("start.date", "end.date"))
mdfr$time <- as.POSIXct(strptime(mdfr$value,"%m/%d/%Y"))
請提供一個可重現的例子。 – JT85
完成。感謝您的建議。 – doorguote