2013-05-02 2 views
2

Я привык к этому, если я хочу, чтобы добавить точку к ggplot, она работает просто отлично:Как добавить слои с новыми данными в ggplot с осью POSIX?

ggplot(mtcars, aes(x = disp, y = mpg)) + geom_point() + 
    geom_point(x = 200, y = 20, size = 5, color = "blue") 

Но, я получаю проблемы, если есть даты POSIX участие:

dat_1 <- data.frame(time = as.POSIXct(c("2010-01-01", "2010-02-01", "2010-03-01")), 
        y_1 = c(-1, 0, 1)) 

основной сюжет работает, конечно

(my_plot <- ggplot(dat_1, aes(x = time, y = y_1)) + 
    geom_point()) 

, но добавив еще один слой

my_plot + geom_point(x = as.POSIXct("2010-01-01"), 
    y = 0, size = 5, color = "blue") 

возвращает ошибку

Error in Ops.POSIXt((x - from[1]), diff(from)) : 
    '/' not defined for "POSIXt" objects 

ответ

7

Преобразование числового решает вопрос:

my_plot + geom_point(x = as.numeric(as.POSIXct("2010-01-01")), 
    y = 0, size = 5, color = "blue") 

Но это не обязательно, если отображение в aes обертке

point_data <- data.frame(x = as.POSIXct("2010-01-01"), y = 0) 
my_plot + geom_point(aes(x = x, y = y), data = point_data, 
        size = 5, color = "blue" 
Смежные вопросы