我正在尝试使用按日期着色的散点图。目前我正在做以下事情,但即使图形看起来像我想要的方式,我仍然无法找到一种方法来获取图例的可读格式。例如,我尝试将它们格式化为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年的每日数据)
答案 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)
答案 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)