2013-05-21 2 views
0

Я хотел бы выделить одну точку (всегда последнюю) в ggplot2.Выделите пункт в ggplot2

У меня есть большая часть пути со следующим, однако есть несколько вопросов. Во-первых, часть кода color = 'red' не работает, поскольку точка розовая. Затем в легенду добавляется точка red.

testDF <- data.frame('A' = rnorm(547), 'B' = rnorm(547), 
       'date' = seq(as.Date("2012-01-01"), as.Date("2013-06-30"), by = 'day')) 

testDF$qtrYr <- factor(paste0('q', 
          as.POSIXlt(testDF$date)$mon %/% 3 + 1, 
          '-', 
          as.POSIXlt(testDF$date)$year + 1900 
          ), 
        levels = c('q1-2012', 'q2-2012', 'q3-2012', 'q4-2012', 'q1-2013', 'q2-2013'), 
        ordered = TRUE) 
gp_XY <- ggplot() + 
       geom_point(data = subset(testDF, testDF$date > as.Date("2012-04-01")), 
          aes(x = A, y = 100 * (A - B), color = qtrYr), pch = 1) + 
        labs(y = NULL, x = NULL) + 
       geom_smooth(data = subset(testDF, testDF$date > as.Date("2012-05-01")), 
          aes(x = A, y = 100 * (A - B), color = qtrYr), 
          method = 'lm', se = F, size = 1.25) + 
       geom_point(data = tail(testDF, 1), 
          aes(x = A, y = 100 * (A - B), color = 'red'), pch = 19, size = 2) 
+3

положить 'color = 'red'' outside' aes()'; например 'pch = 19', это не эстетическое отображение, а заданное значение. – baptiste

+0

@baptise, вероятно, должен быть ответом –

+0

Это дубликат в любом случае, но такой FAQ, который я не могу придумать для поисковых запросов для него – baptiste

ответ

1

Как отметил выше:

Вы должны положить color = 'red' вне aes(); например, pch = 19, это не эстетическое отображение, а заданное значение.

Смежные вопросы