在一个ggplot上使用两个缩放颜色渐变

前端之家收集整理的这篇文章主要介绍了在一个ggplot上使用两个缩放颜色渐变前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想将散点图上的点的颜色比例渐变与图表上某些文本的颜色比例渐变结合起来.我可以单独执行它们,如下面的示例所示,但我似乎无法将它们放在一起……有没有办法做到这一点?

这是我想要组合的两种类型图(p和p1)的示例代码

l <- data.frame(prev=rnorm(1266),aft=rnorm(1266),day=as.factor(wday(sample(c(2:6),1266,replace=TRUE),abbr=TRUE,label=TRUE)),month=as.factor(month(Sys.Date()+months(sample(0:11,replace=TRUE)),ind=c(1:1266))
cors <- ddply(l,c("month","day"),summarise,cor = round(cor(prev,aft),3))


# below the text gains the colour gradient
p <- ggplot(l,aes(x=prev,y=aft)) + 
    geom_point() + 
    scale_colour_gradient(low = "red",high="blue")+ 
    facet_grid(day~month,scales="free_x")+
    geom_text(data=cors,aes(label=paste("r= ",cor,sep=""),size=abs(cor),colour=cor),x=Inf,y=Inf,vjust=1,hjust=1,show_guide=FALSE)+
    geom_hline(aes(yintercept=0))+
    geom_smooth(method="loess")
p

# below the points gain the colour gradient
p1 <- ggplot(l,y=aft)) + 
    geom_point(aes(colour=ind)) + 
    scale_colour_gradient("gray")+ 
    facet_grid(day~month,show_guide=FALSE)+
    geom_hline(aes(yintercept=0))+
    opts(legend.position="none") +
    geom_smooth(method="loess")

p1

解决方法

我不希望这可以做到.情节每个美学只有一个刻度.我相信如果你添加多个scale_color,第二个将覆盖第一个.我认为Hadley故意创建了这种行为,在一个图中,从数据到图中的比例的映射,例如,颜色,是独一无二的.这确保了可以轻松比较绘图中的所有颜色,因为它们共享相同的scale_color.

猜你在找的CSS相关文章