是否可以在
中添加每个峰值时的小时的文本标签ggplot(lynx.df, aes(time, V.lynx)) +
geom_line() +
stat_peaks(colour = "red") +
stat_peaks(geom = "text", colour = "red", vjust = -0.5) +
ylim(-100, 7300)
我在这里复制数据文件的头部:
date,o3
1/8/2015 0:00,27.4
1/8/2015 1:00,31.6
1/8/2015 2:00,36
1/8/2015 3:00,25.2
1/8/2015 4:00,22.6
1/8/2015 5:00,28.9
1/8/2015 6:00,30.6
1/8/2015 7:00,39.5
1/8/2015 8:00,40.9
1/8/2015 9:00,40.6
1/8/2015 10:00,39.1
...
感谢您的帮助
答案 0 :(得分:1)
是的,如果它在数据中,则可以添加小时。您需要提供合适的格式字符串。使用您私下发送给我的示例数据,可以使用以下代码。
library(readr)
library(dplyr)
library(lubridate)
library(ggplot2)
library(ggpmisc)
ozone.df <- read_csv("ggpmisc.csv", col_types = "cd")
ozone.df <- mutate(ozone.df, datetime = dmy_hm(date))
ggplot(ozone.df, aes(datetime, o3)) + geom_line() +
stat_peaks(colour = "red", span = 21, ignore_threshold = 0.5) +
stat_peaks(geom = "text", colour = "red", span = 21, ignore_threshold = 0.5,
hjust = -0.1, x.label.fmt = "%H:%M", angle = 90) +
ylim(0, 85)
我添加了一些其他技巧,假设您对每日峰值感兴趣(span = 21使用21个观察点的移动窗口来查找峰值)。我还假设你只对它们在观测的y范围的上半部分感兴趣。你问了几个小时,我还加了几分钟让它更具可读性。如果您希望只有几个小时,则将“%H:%M”更改为“%H”。