我无法获得限制= as.Date()来工作。 ggplot可以在没有任何数据的情况下绘制区域-在实际时间序列之前和之后按时间顺序。如何正确执行此操作?
我正在尝试绘制不同的线图/时间序列,除x轴外,其他所有功能都可以正常工作。我已经尝试过scale_x_date的限制,但是它什么也没做。
这将创建与我的数据类似的数据集,其中包含三个变量(skat,ft,media)和从2011年1月至2018年6月绘制的每周观测值:
year <- sort(rep(seq(2011, 2018, 1), 52))
weeks <- rep(seq(1, 52, 1), 8)
work.dat <- as.data.frame(weeks)
work.dat$years <- year
work.dat$weeks <- formatC(work.dat$weeks, width = 2, flag = "0")
work.dat$weeks <- paste0(work.dat$years, work.dat$weeks)
work.dat <- work.dat[!work.dat$weeks > 201822, ]
work.dat$years <- NULL
work.dat$skat <- sample(c(seq(0,1,0.01)), 386, replace = T)
work.dat$ft <- sample(c(seq(0,1,0.01)), 386, replace = T)
work.dat$media <- sample(c(seq(0,1,0.01)), 386, replace = T)
work.dat$weeks_graph <- as.Date(paste(work.dat$weeks,1),"%Y%U %u")
work.dat$weeks <- NULL
work.dat <- melt(work.dat, id="weeks_graph")
现在我正在制作剧情:
ggplot(work.dat) +
geom_line(aes(x = weeks_graph, y = value, colour = variable)) +
geom_line(aes(x = weeks_graph, y = value, colour = variable)) +
geom_line(aes(x = weeks_graph, y = value, colour = variable)) +
scale_x_date(date_breaks = "1 months", date_labels = "%b-%y",
limits = as.Date(c(min(work.dat$weeks_graph),
max(work.dat$weeks_graph)), format="%Y%U %u")) +
scale_y_continuous(breaks = c(seq(.0, 1.0, 0.1)), limits = c(0,1)) +
theme(axis.text.x = element_text(angle = 90, hjust = 1)) +
theme(text=element_text(size = 16)) + ggtitle('') + ylab('') +
xlab('') + labs(color = "Procedural:")
结果是从2010年9月到2018年10月的地块,如上所述,我希望它从2011年1月开始到2018年6月结束,因为这是我的数据。我在scale_x_date中尝试了不同的“限制”设置,但没有任何效果-在我看来,上面显示的设置应该是最正确的。但是,是的,它行不通,所以有人知道该怎么做吗?
任何建议都非常感谢!
/ A