#r #ggplot2 #time #posixct
Вопрос:
Я использую ggplot2 для построения графика усредненных данных (y) по времени года (x). Проблема в том, что когда я пытаюсь отформатировать данные с помощью функции scale_x_datetime, она всегда читается: Ошибка: Неверный ввод: time_trans работает только с объектами класса POSIXct
Я переформатировал столбец, который я строю, чтобы быть POSIXct, но когда я строю его снова, я просто получаю то же сообщение об ошибке. Я думаю, что это может быть как-то связано с тем, как я усреднил данные, возможно, попробую другой метод усреднения.
Вот код:
exports_15E$Sv_Ln = 10^(exports_15E$Sv_mean/10)
desiredGroupingUnit15E = cut(exports_15E$Date_time, breaks = "24 hour") #You can use substr for that also
aggregate(exports_15E$Sv_Ln, by = list(desiredGroupingUnit15E), FUN = mean)
daily_avg_15E<- data.frame(aggregate(exports_15E$Sv_Ln, by = list(desiredGroupingUnit15E), FUN = mean))
daily_avg_15E$Sv_log = 10*log10(daily_avg_15E$x)
daily_avg_15E$Date <- as.POSIXct(daily_avg_15E$Group.1, format = "%Y-%m-%d", tz="Asia/Bangkok")
ggplot(daily_avg_15E, aes(x = Date, y = Sv_log)) geom_point() geom_smooth(method = loess, se = TRUE, fullrange= TRUE)
labs(y = "Sv mean 24 Hour Avg (dB)", x = "Date/Time") ggtitle("Dai 15E Dec-Jan Sv mean Daily")
theme(panel.grid.major = element_blank(), panel.grid.minor = element_blank(),
panel.background = element_rect(fill = "white", colour = NA), legend.position = ("none"))
scale_x_datetime(name = "Date/Time", breaks = c("1 week"))
annotate("segment", x= 21, xend= 21, y=-53.0, yend=-70)
annotate("segment", x= 27, xend= 27, y=-53.0, yend=-70)
annotate("segment", x= 52, xend= 52, y=-53.0, yend=-70)
annotate("segment", x= 58, xend= 58, y=-53.0, yend=-70)```