将气泡颜色指定为变量限制了ggplot中的选择

时间:2013-12-09 00:04:38

标签: r ggplot2 legend

在ggplot中创建气泡图时,我在调整两个独立的美学选择时遇到了问题,我确信它与我编写情节的方式有关。在下面的图中,如果我根据如下变量指定气泡的颜色:

V1<-rnorm(50)
V2<-rnorm(50)
V3<-c(rep("A",10),rep("B",10),rep("C",10),rep("D",10),rep("E",10))
V4<-V2+.1
V5<-c(rep("BF1",9),rep("BF2",11),rep("BF3",8),rep("BF4",12),rep("BF5",10))
DF<-data.frame(V1,V2,V3,V4,V5)

ggplot(DF,aes(x=V1,y=V2,size=V4,label=DF$V3,fill=V5),legend=FALSE)+
scale_y_continuous( limits = c(-3, 3))+
scale_x_continuous( limits = c(-3, 3))+
geom_point(color="black",shape=21,alpha=0.5)+
geom_text(size=2)+
theme_bw()+
scale_size(range = c(5, 20))+
scale_colour_brewer(palette="Blues")

enter image description here

我对这个情节的两个问题是

1-我想将默认的颜色托盘更改为不太柔和的颜色。我认为使用scale_color_brewer参数会将颜色更改为“Blues”,但显然情况并非如此。

2-其次,V4的图例现在有空圆圈,而没有aes(fill =)参数则圆圈被填充。我知道这是因为我的圈子现在有很多种颜色,但我更喜欢将一个坚实的(黑色)圆圈作为我的传奇而不是开放的圆圈。有没有办法覆盖图例并填充圆圈?

1 个答案:

答案 0 :(得分:4)

对于(1)使用scale_fill_brewer(palette="Blues")

对于(2)使用guides(size=guide_legend(override.aes = list(fill="black", alpha=1)))


更新:@BenBoker在上面的评论中提出了一个很好的观点。我建议至少,在图例中启动alpha:添加到上面的(2):, color=guide_legend(override.aes = list(alpha=0.9))或者那种性质的