Tôi có một data.frame như thế này:Làm thế nào để vẽ dữ liệu khoảng thời gian sử dụng ggplot2
library(ggplot2)
library(reshape2)
tasks <- c("Review literature", "Mung data")
dfr <- data.frame(
name = factor(tasks, levels = tasks),
start.date = c("24/08/2010 01:00:01", "24/08/2010 01:00:10", "01/11/2010 01:30:00", "01/11/2010 02:00:00"),
end.date = c("24/08/2010 02:00:00", "24/08/2010 03:00:00", "01/11/2010 02:00:00", "01/11/2010 04:00:00")
)
mdfr <- melt(dfr, measure.vars = c("start.date", "end.date"))
Tôi muốn vẽ dữ liệu này sử dụng ggplot2 để những ngày khác nhau là trên khía cạnh khác nhau và phần thời gian duy nhất là chương trình trên trục x? Tôi cố gắng một cái gì đó như:
ggplot(mdfr, aes(as.Date(value, "%H/%M/%S"), name)) +
geom_line(size = 6) +
xlab("") + ylab("") +
theme_bw() + facet_wrap(~as.Date(value, "%d/%m/%Y"))
Error in layout_base(data, vars, drop = drop) :
At least one layer must contain all variables used for facetting
Bạn có thể tiết kiệm cho mình rất nhiều nhức đầu bằng cách sử dụng gói 'lubridate', thay vì chức năng 'as.Date'. – Dinre
Một điều, liên quan đến vấn đề của bạn hay không: Tôi nghĩ bạn bỏ lỡ một% trong 'as.Date (giá trị,"% d /% m/Y ")'. Hãy thử 'as.Date (giá trị,"% d /% m /% Y ")'. – Henrik
Cảm ơn, nó tạo ra cùng một lỗi. Tôi đã cập nhật câu hỏi – Matkrupp