gpt4 book ai didi

r - 使用时间在 ggplot2 中添加一条 vline

转载 作者:行者123 更新时间:2023-12-01 16:05:02 25 4
gpt4 key购买 nike

我在向 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()

关于堆栈溢出和网络上似乎有很多关于在时间序列上使用 vlines 的讨论。我已经尝试纠正我的代码,但到目前为止我运气不佳。

例如,我想要 21 日下午 2 点的垂直线。

g1 <- g + geom_vline(xintercept=as.numeric(as.Date("2013-02-21 14:00:00")))

谁能告诉我如何让它工作?

最佳答案

您必须将 as.Date() 替换为 as.POSIXct() 因为您还需要时间而不仅仅是日期(函数 as.Date() 只代表日期部分)。

g + geom_vline(xintercept=as.numeric(as.POSIXct("2013-02-21 14:00:00")))

您可以通过查看这两种情况来了解差异:

 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"

关于r - 使用时间在 ggplot2 中添加一条 vline,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15000257/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com