按日期着色的ggplot2的散点图

时间:2014-01-23 14:49:31

标签: r ggplot2

我正在尝试使用按日期着色的散点图。目前我正在做以下事情,但即使图形看起来像我想要的方式,我仍然无法找到一种方法来获取图例的可读格式。例如,我尝试将它们格式化为20140101,但整年都在一个很小的范围内,即< 20141231,我在一年内没有得到不同的颜色。

data(cars)
cars['dt'] = seq(Sys.Date(),Sys.Date()-980,-20)

ggplot(cars,aes(speed,dist,colour = as.integer(dt))) + geom_point(alpha = 0.6) +
scale_colour_gradientn(colours=c('red','green','blue')) 

有人可以推荐一个解决方案吗?具体来说,我希望每个日期都是不同颜色/颜色的阴影。 (对于我的实际数据,我有大约5 - 6年的每日数据)

enter image description here

2 个答案:

答案 0 :(得分:6)

只需添加一个贴标机功能:

ggplot(cars,aes(speed,dist,colour=as.integer(dt))) + geom_point(alpha = 0.6) +
  scale_colour_gradientn(colours=c('red','green','blue'), labels=as.Date)

enter image description here

答案 1 :(得分:4)

绕过“原点”必须提供错误' ... 一种方法是为指定了原点的as.Date创建一个包装器,而不是将其称为标签器。

as.Date_origin <- function(x){
  as.Date(x, origin = '1970-01-01')
}

data(cars)
cars['dt'] = seq(Sys.Date(),Sys.Date()-980,-20)

ggplot(cars,aes(speed,dist,colour=as.integer(dt))) + geom_point(alpha = 0.6) +
  scale_colour_gradientn(name = 'Date', colours=c('red','green','blue'), labels=as.Date_origin)