Как можно применить градиент цвета по дате к графику рассеяния ggplot2? - PullRequest
2 голосов
/ 17 февраля 2011

В приведенном ниже примере я бы хотел, чтобы более свежие точки были более темного оттенка синего (или, наоборот, менее прозрачными).

data <- data.frame(x=c(1,2,3,4,5,6,7,8,9,10,11,12), 
    y=c(1,2,3,4,5,6,7,8,9,10,11,12), 
    dt=c("2010-12-31","2010-11-30","2010-10-29","2010-09-30",
        "2010-08-31","2010-07-30","2010-06-30","2010-05-31","2010-04-30",
        "2010-03-31","2010-02-26","2010-01-29"))
p <- ggplot(data, aes(x,y,color=dt)) + geom_point() + 
    scale_colour_gradient(limits=c("2010-01-29","2010-12_31"), 
        low="white", high="blue")
print(p)

1 Ответ

5 голосов
/ 17 февраля 2011

dt - фактор-переменная, и, вероятно, градиент масштаба _ * _ недоступен с дискретной переменной по природе.

Вы можете преобразовать dt в Date, а затем в целое число, которое является непрерывной переменной.

Вот пример:

ggplot(data, aes(x,y, colour=as.integer(as.Date(data$dt)))) + 
  geom_point() + 
  scale_colour_gradient(limits=as.integer(as.Date(c("2010-01-29","2010-12-31"))),
                        low="white", high="blue") +
  opts(legend.position="none")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...