Построение серии временных меток POSIXct с помощью ggplot2

Я хотел бы построить результаты теста нагрузки. Каждая строка содержит временную метку в секундах и время отклика для запроса. Например:

timestamp <- c(1441229131, 1441229132, 1441229133, 1441229134, 1441229135)
response.time <- c(22, 48, 48, 59, 52)
lt1 <- data.frame(timestamp, response.time)
lt1$datetime <- as.POSIXct(lt1$timestamp, origin="1970-01-01", tz="GMT")

Однако, когда я пытаюсь построить это, ось x показывает более старые цифры, а не правильно отформатированную дату.

g1 <- ggplot(lt1, aes(datetime, response.time))
g1 <- g1 + geom_point()
g1 <- g1 + theme(axis.text.x=element_text(angle=90, hjust=1))
g1

1 ответ

Вам нужно указать, что вы хотите по оси x, используя библиотеку scales и функцию scale_x_datetime:

library(scales)
ggplot(lt1, aes(datetime, response.time)) +
 geom_point() +
 theme(axis.text.x = element_text(angle = 90, hjust = 1)) +
 scale_x_datetime(labels = date_format("%H:%M:%S"))

для получения дополнительной информации см. ?scale_x_datetime, ?date_format и ?strptime

licensed under cc by-sa 3.0 with attribution.