2011-02-17 70 views
2

在下面的例子中,我希望最近的几点是一个更深的蓝色阴影(或者,更不透明)。基于日期的颜色渐变如何应用于ggplot2散点图?

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) 
+0

@user - 如@koshke说,他的回答,你的烦恼都与不是一个日期/时间字段的`dt`领域。检查`str(data)`来确认它是一个因素。不管你是否在ggplot调用中或在预处理步骤中转换它都取决于你,但是这应该让你走上正确的道路。 – Chase 2011-02-17 04:27:45

回答

5

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") 
+0

这很好,谢谢。 – user338714 2011-02-17 14:07:55

相关问题