Время построения графика от объекта POSIXct на оси с использованием ggplot2 - PullRequest
0 голосов
/ 20 февраля 2020

У меня есть фрейм данных splineset сплайн-интерполяции (значения x и y), основанный на некоторых зависящих от времени данных, df. df имеет столбцы df$value и df$time, где time - это объект даты и времени POSIXct, а value - это цифра c.

splineset, созданная с помощью splineset <- as.data.frame(spline(df$time, df$value))

Я строю его с помощью кода:

base <- ggplot(df, aes(x = time, y = value)) +
        geom_point() +
        geom_line(data = splineset, aes(x = x, y = y))

base

Я хочу построить сплайн-интерполяцию с помощью диаграммы рассеяния df, но моя ось x на графике показывает значение цифры c POSIXct ( секунд с 1970-01-01) вместо даты. Если я конвертирую splineset$x <- as.Date(splineset$x) и пытаюсь построить его, я получаю ошибку:

Error: Invalid input: date_trans works with objects of class Date only

Любой совет? Я хочу, чтобы моя ось правильно отображала дату, и не могу придумать, как это сделать. Ошибка бесполезна, поскольку кажется, что я уже преобразовал ее в класс Date.

Спасибо

Редактировать: вывод dput(head(splineset,20)):

structure(list(x = structure(c(1420261200, 1420294782.72251, 
1420328365.44503, 1420361948.16754, 1420395530.89005, 1420429113.61257, 
1420462696.33508, 1420496279.05759, 1420529861.7801, 1420563444.50262, 
1420597027.22513, 1420630609.94764, 1420664192.67016, 1420697775.39267, 
1420731358.11518, 1420764940.8377, 1420798523.56021, 1420832106.28272, 
1420865689.00524, 1420899271.72775), class = "Date"), y = c(4748.5, 
4212.52512190184, 5425.53465349697, 7799.44656819583, 10683.9379760372, 
13353.4154924385, 15152.5922945744, 15891.6831978947, 15561.4833407268, 
14317.8145462586, 12609.7380342676, 10887.8275183587, 9315.03076879911, 
7888.68545478638, 6604.14143895759, 5456.74858394579, 4441.85675236009, 
3554.81580684035, 2790.97560999938, 2145.68602447347), x.time = structure(c(1420261200, 
1420294782.72251, 1420328365.44503, 1420361948.16754, 1420395530.89005, 
1420429113.61257, 1420462696.33508, 1420496279.05759, 1420529861.7801, 
1420563444.50262, 1420597027.22513, 1420630609.94764, 1420664192.67016, 
1420697775.39267, 1420731358.11518, 1420764940.8377, 1420798523.56021, 
1420832106.28272, 1420865689.00524, 1420899271.72775), class = c("POSIXct", 
"POSIXt"), tzone = "America/Indianapolis")), row.names = c(NA, 
20L), class = "data.frame")
...