0

是否可以在每个峰值出现的时间添加一个文本标签

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
...

谢谢你的帮助

4

1 回答 1

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”。

这是结果图: 在此处输入图像描述

于 2016-02-29T19:37:54.820 回答