2011-02-17 96 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