我有时间序列数据,每个时间都有一个观测值。我通过R的splinefun
运行它以创建用于观察的样条函数。我想使用ggplot2
在stat_function
中绘制此样条函数。我希望绘图以日期/时间为X轴,而不是按行索引的X轴。可以说我已经做了很多尝试,从编辑splinefun
的结果(以使其与as.POSIXct一起使用)到在ggplot命令中赋予不同的美感。
如何获得X轴上的日期/时间?
这是我当前的情节:
这里是代表:
library(ggplot2)
DateTime <- seq.POSIXt(from = as.POSIXct('2020-01-10'),
to = as.POSIXct('2020-01-12'),
by = '1 hour')
set.seed(1)
y <- runif(length(DateTime), min = 0.5) * cos(as.numeric(DateTime))
df <- data.frame(DateTime = DateTime,
x = seq(1:length(DateTime)),
y = y)
myspline <- splinefun(df$x, df$y)
ggplot(mapping = aes(x=1:nrow(df))) +
stat_function(fun = myspline, size = 1, args = list(deriv = 0))
splinefun
函数对于我的POSIXct值似乎可以正常工作
set.seed(1)
df <- transform(data.frame(DateTime = seq.POSIXt(from = as.POSIXct('2020-01-10'),
to = as.POSIXct('2020-01-12'),
by = '1 hour')),
y=runif(length(DateTime), min = 0.5) * cos(as.numeric(DateTime)))
library(ggplot2)
myspline <- splinefun(df$DateTime, df$y)
ggplot(df, mapping = aes(x=DateTime)) +
stat_function(fun = myspline, size = 1, args = list(deriv = 0))
使用R版本3.6.2测试