我在向gplot2图添加垂直线时遇到一些问题.
我的示例数据框如下所示.
set.seed(1234)
df <- data.frame(Date=seq(as.POSIXct("05:00", format="%H:%M"),
as.POSIXct("23:00", format="%H:%M"), by="hours"))
df$Counts <- sample(19)
df <- df[-c(4,7,17,18),]
# generate the groups automatically and plot
idx <- c(1, diff(df$Date))
i2 <- c(1,which(idx != 1), nrow(df)+1)
df$grp <- rep(1:length(diff(i2)), diff(i2))
g <- ggplot(df, aes(x=Date, y=Counts)) + geom_line(aes(group = grp)) +
geom_point()
Run Code Online (Sandbox Code Playgroud)
关于堆栈溢出和Web的讨论似乎有很多关于在时间序列上使用vlines的讨论.我已经去纠正我的代码,但到目前为止我没有太多运气.
比方说,我希望在21日下午2点有一条垂直线.
g1 <- g + geom_vline(xintercept=as.numeric(as.Date("2013-02-21 14:00:00")))
Run Code Online (Sandbox Code Playgroud)
任何人都可以告诉我如何让这个工作?
您必须更换as.Date(),as.POSIXct()因为您还需要时间而不仅仅是日期(功能as.Date()仅代表日期部分).
g + geom_vline(xintercept=as.numeric(as.POSIXct("2013-02-21 14:00:00")))
Run Code Online (Sandbox Code Playgroud)
你可以通过查看这两种情况来看出差异:
as.Date("2013-02-21 14:00:00")
[1] "2013-02-21"
as.POSIXct("2013-02-21 14:00:00")
[1] "2013-02-21 14:00:00 EET"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5698 次 |
| 最近记录: |