Ggplot有两个以上的传说

时间:2017-03-25 07:08:36

标签: r ggplot2 legend

我有ggplot我希望使用factors分散情节。 数据有3 df$group,其级别我想在图例中显示,但点的颜色只会根据其中一个因素(set.seed(1) df <- data.frame(x=rnorm(100),y=rnorm(100), group=LETTERS[sample(5,100,replace=T)], type=letters[sample(3,100,replace=T)], background=sample(4,100,replace=T),stringsAsFactors=F) df$group <- factor(df$group,LETTERS[1:5]) df$type <- factor(df$type,;etters[1:3]) df$background <- factor(df$background,c(1:4)) 以下)。

这是我到目前为止所拥有的:

require(RColorBrewer)
require(scales)
all.colors <- hcl(h=seq(0,(12-1)/(12),length=12)*360,c=100,l=65,fixup=TRUE)
group.colors <- all.colors[1:5]
type.colors <- all.colors[6:8]
background.colors <- all.colors[9:12]

我手动指定颜色:

factors

这就是我在图例df$groupdf$type中展示3 require(ggplot2) ggplot(df,aes(x=x,y=y,colour=group,fill=type,alpha=background))+geom_point(cex=2,shape=1,stroke=1)+ theme_bw()+theme(strip.background=element_blank())+scale_color_manual(drop=FALSE,values=group.colors,name="group")+ guides(fill=guide_legend(override.aes=list(colour=type.colors,pch=0))) 所拥有的内容:

background.colors

enter image description here

所以我的问题是如何让$(document).ready(function(){出现在&#34;背景&#34;下的图例中。而不是当前出现的默认选择的灰度颜色。

1 个答案:

答案 0 :(得分:0)

ggplot(df,aes(x=x, y=y, colour=group, fill=type, alpha=background))+ 
  geom_point(cex=2, shape=1, stroke=1) + 
  theme_bw() + 
  theme(strip.background=element_blank()) +
  scale_color_manual(drop=FALSE, values=group.colors, name="group") + 
  guides(fill=guide_legend(override.aes=list(colour=type.colors,pch=0)),
         alpha=guide_legend(override.aes=list(colour=background.colors,pch=0)))

enter image description here